Package soot.jimple.spark.solver
Class OnFlyCallGraph
- java.lang.Object
-
- soot.jimple.spark.solver.OnFlyCallGraph
-
public class OnFlyCallGraph extends Object
The interface between the pointer analysis engine and the on-the-fly call graph builder.- Author:
- Ondrej Lhotak
-
-
Field Summary
Fields Modifier and Type Field Description protected QueueReader<Edge>callEdgesprotected CallGraphcallGraphprotected OnFlyCallGraphBuilderofcgbprotected ReachableMethodsreachableMethodsprotected QueueReader<MethodOrMethodContext>reachablesReader
-
Constructor Summary
Constructors Constructor Description OnFlyCallGraph(PAG pag, boolean appOnly)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuild()CallGraphcallGraph()protected OnFlyCallGraphBuildercreateOnFlyCallGraphBuilder(ContextManager cm, ReachableMethods reachableMethods, boolean appOnly)Factory method for creating a new on-fly callgraph builder.voidmergedWith(Node n1, Node n2)Node uses this to notify PAG that n2 has been merged into n1.OnFlyCallGraphBuilderofcgb()ReachableMethodsreachableMethods()voidupdatedFieldRef(AllocDotField df, PointsToSetInternal ptsi)voidupdatedNode(VarNode vn)
-
-
-
Field Detail
-
ofcgb
protected final OnFlyCallGraphBuilder ofcgb
-
reachableMethods
protected final ReachableMethods reachableMethods
-
reachablesReader
protected final QueueReader<MethodOrMethodContext> reachablesReader
-
callEdges
protected final QueueReader<Edge> callEdges
-
callGraph
protected final CallGraph callGraph
-
-
Constructor Detail
-
OnFlyCallGraph
public OnFlyCallGraph(PAG pag, boolean appOnly)
-
-
Method Detail
-
reachableMethods
public ReachableMethods reachableMethods()
-
callGraph
public CallGraph callGraph()
-
createOnFlyCallGraphBuilder
protected OnFlyCallGraphBuilder createOnFlyCallGraphBuilder(ContextManager cm, ReachableMethods reachableMethods, boolean appOnly)
Factory method for creating a new on-fly callgraph builder. Custom implementations can override this method for injecting own callgraph builders without having to modify Soot.- Parameters:
cm- The context managerreachableMethods- The reachable method setappOnly- True to only consider application code- Returns:
- The new on-fly callgraph builder
-
build
public void build()
-
ofcgb
public OnFlyCallGraphBuilder ofcgb()
-
updatedFieldRef
public void updatedFieldRef(AllocDotField df, PointsToSetInternal ptsi)
-
updatedNode
public void updatedNode(VarNode vn)
-
-