Does scope
affect the analysis order? Is it possible to specify the analysis order?
#118
Labels
scope
affect the analysis order? Is it possible to specify the analysis order?
#118
📝 Overall Description
When I use Tai-e to analyze a web project, I cannot use Tai-e to analyze the web project directly because the web project has multiple entry points
I customized a new analysis to extract multiple entry points of the web
Then I customized the Plugin
When I specify
scope
asAPP
orALL
, Tai-e can correctly perform routerAnalysis and successfully construct a multi-entry callgraphHowever, when the
scope
is specified asAPP
, it seems that the control flow analysis of the function calls of the third-party dependencies in the project cannot be performed (the CFG of the methods in the third-party dependencies cannot be constructed), so I specify the scope asREACHABLE
, and then I run Tai-e, but the following exception is thrownException in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "routerAnalysis" is null
The
routerAnalysis
was not successful at this time, soworld.getResult("routerAnalysis");
got nullAccording to https://tai-e.pascal-lab.net/docs/current/reference/en/command-line-options.html,
• REACHABLE: classes that are reachable in the call graph (this scope requires analysis cg, i.e., call graph construction)
This means that Tai-e first builds
cg
before any analysis.cg
is built inpta
mode, and in the pointer analysis pluginAt this time, using
world.getResult("routerAnalysis");
will get null, because routerAnalysis has not been run yetBut if I specify
scope
asALL
, it seems that a lot of unnecessary analysis will be performed? If thescope
isALL
and their-dumper
option is turned on,apple.*.tir
andcom.apple.*.tir
will appear, which has nothing to do with the project I want to analyze...So I would like to ask, when the
scope
isREACHABLE
, can I still perform routerAnalysis analysis first, extract the entry and then usesolver.addEntryPoint(...);
to buildcg
🎯 Expected Behavior
none
🐛 Current Behavior
none
🔄 Reproducible Example
No response
⚙️ Tai-e Arguments
🔍 Click here to see Tai-e Options
🔍 Click here to see Tai-e Analysis Plan
{{The content of 'output/tai-e-plan.yml' file}}
📜 Tai-e Log
🔍 Click here to see Tai-e Log
ℹ️ Additional Information
No response
The text was updated successfully, but these errors were encountered: