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 TypeMethodDescriptionvoidaddDynamicInvokeEdge(ContextMethod caller, InvokableStmt callStmt, SootMethod calleem, DynamicInvokeTarget target) Adds an edge from an invokedynamic statement to one of itsDynamicInvokeTargets and binds the captured values (the statement's arguments) to the target's receiver/parameters.voidaddStaticEdge(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) -
addDynamicInvokeEdge
public void addDynamicInvokeEdge(ContextMethod caller, InvokableStmt callStmt, SootMethod calleem, DynamicInvokeTarget target) Adds an edge from an invokedynamic statement to one of itsDynamicInvokeTargets and binds the captured values (the statement's arguments) to the target's receiver/parameters. No return or exception flow: the statement yields the functional object, not the target's result. -
handleCallEdge
-
recordVirtualCallSite
-
virtualCallDispatch
-
dispatch
-