Package qilin.core.builder
Class CallGraphBuilder
java.lang.Object
qilin.core.builder.CallGraphBuilder
-
Field Summary
Modifier and TypeFieldDescriptionprotected OnFlyCallGraph
protected final Map<SootMethod,
Map<Object, InvokableStmt>> protected final PAG
protected final PTA
protected final PTAScene
protected final Set<ContextMethod>
protected final Map<VarNode,
Collection<VirtualCallSite>> protected final VirtualCalls
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addStaticEdge
(ContextMethod caller, InvokableStmt callStmt, SootMethod calleem, Kind kind) callSitesLookUp
(VarNode receiver) protected void
dispatch
(AllocNode receiverNode, VirtualCallSite site) dispatch
(Type type, VirtualCallSite site) getReceiverVarNode
(Local receiver, ContextMethod m) protected void
handleCallEdge
(Edge edge) void
void
injectCallEdge
(Object heapOrType, ContextMethod callee, Kind kind) boolean
recordVirtualCallSite
(VarNode receiver, VirtualCallSite site) resolveNonSpecial
(ClassType t, MethodSubSignature subSig) void
setRMQueue
(ChunkedQueue<ContextMethod> rmQueue) void
virtualCallDispatch
(PointsToSetInternal p2set, VirtualCallSite site)
-
Field Details
-
receiverToSites
-
methodToInvokeStmt
-
reachMethods
-
calledges
-
pta
-
pag
-
ptaScene
-
virtualCalls
-
cicg
-
-
Constructor Details
-
CallGraphBuilder
-
-
Method Details
-
setRMQueue
-
getReachableMethods
-
getReceiverToSitesMap
-
callSitesLookUp
-
resolveNonSpecial
-
getCallGraph
-
getCICallGraph
-
getEntryPoints
-
initReachableMethods
public void initReachableMethods() -
getReceiverVarNode
-
dispatch
-
injectCallEdge
-
addStaticEdge
public void addStaticEdge(ContextMethod caller, InvokableStmt callStmt, SootMethod calleem, Kind kind) -
handleCallEdge
-
recordVirtualCallSite
-
virtualCallDispatch
-
dispatch
-