pascal-lab/Tai-e

question about icfg with ImplicitEntries

Closed this issue · 0 comments

Overall Description

I manually added the implicit entry methods I need when using DefaultICFG. However, in the generated ICFG result, the part containing the main method is an ICFG, while the part containing the implicit entry methods is a CFG. I want to know how to modify the code to make the part containing the implicit entry methods also generate as ICFG (because I want to link the ICFGs of implicit entry methods and the main method).

Current Behavior

The part containing the implicit entry methods is a CFG.

Expected Behavior

The part containing the implicit entry methods should also be generated as an ICFG.

Tai-e Version

Latest Version

Tai-e Arguments

  • id: throw
    options:
    exception: explicit
    algorithm: intra
  • id: cfg
    options:
    exception: explicit
    dump: false
  • id: pta
    options:
    cs: ci
    only-app: true
    implicit-entries: true
    distinguish-string-constants: reflection
    merge-string-objects: true
    merge-string-builders: true
    merge-exception-objects: true
    handle-invokedynamic: false
    propagate-types:
    • reference
      advanced: null
      dump: true
      dump-ci: true
      dump-yaml: true
      expected-file: null
      reflection-inference: string-constant
      reflection-log: null
      taint-config: null
      plugins: []
      time-limit: -1
  • id: cg
    options:
    algorithm: pta
    dump: true
    dump-methods: false
    dump-call-edges: false
  • id: icfg
    options:
    dump: true
  • id: ir-dumper
    options: {}
  • id: deadlockDetection
    options: {}

optionsFile: null
printHelp: false
classPath: []

appClassPath:

  • java-benchmarks/deadlock/code/app.jar
    mainClass: deadcode.example.Test
    inputClasses: []
    javaVersion: 8
    prependJVM: false
    allowPhantom: true
    worldBuilderClass: pascal.taie.frontend.soot.SootWorldBuilder
    outputDir: output
    preBuildIR: true
    worldCacheMode: TRUE #FALSE
    scope: APP #REACHABLE
    nativeModel: true
    planFile: null
    analyses:
    deadlockDetection: ;
    onlyGenPlan: false
    keepResult:
  • $KEEP-ALL

JDK Version

jdk17

System Environment

windows 10 x64

Additional Information

sootWorldBuilder中添加隐式入口
隐式入口是CFG