Package qilin.core.builder
Class CallGraphBuilder
java.lang.Object
qilin.core.builder.CallGraphBuilder
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected OnFlyCallGraphprotected final Map<SootMethod,Map<Object, InvokableStmt>> protected final PAGprotected final PTAprotected final PTASceneprotected final Set<ContextMethod>protected final Map<VarNode,Collection<VirtualCallSite>> protected final VirtualCalls -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddStaticEdge(ContextMethod caller, InvokableStmt callStmt, SootMethod calleem, Kind kind) callSitesLookUp(VarNode receiver) protected voiddispatch(AllocNode receiverNode, VirtualCallSite site) dispatch(Type type, VirtualCallSite site) getReceiverVarNode(Local receiver, ContextMethod m) protected voidhandleCallEdge(Edge edge) voidvoidinjectCallEdge(Object heapOrType, ContextMethod callee, Kind kind) booleanrecordVirtualCallSite(VarNode receiver, VirtualCallSite site) resolveNonSpecial(ClassType t, MethodSubSignature subSig) voidsetRMQueue(ChunkedQueue<ContextMethod> rmQueue) voidvirtualCallDispatch(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
-