Class JimpleBasedInterproceduralCFG
java.lang.Object
sootup.analysis.interprocedural.icfg.AbstractJimpleBasedICFG
sootup.analysis.interprocedural.icfg.JimpleBasedInterproceduralCFG
- All Implemented Interfaces:
heros.InterproceduralCFG<Stmt,,SootMethod> BiDiInterproceduralCFG<Stmt,SootMethod>
Default implementation for the
InterproceduralCFG interface. Includes all statements
reachable from entrypoints through explicit call statements or through calls to Thread.start().
This class is designed to be thread safe, and subclasses of this class must be designed in a thread-safe way, too.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final CallGraphprotected booleanprotected com.google.common.cache.CacheLoader<SootMethod,Collection<Stmt>> protected com.google.common.cache.CacheLoader<Stmt,Collection<SootMethod>> protected static final org.slf4j.Loggerprotected final com.google.common.cache.LoadingCache<SootMethod,Collection<Stmt>> protected final com.google.common.cache.LoadingCache<Stmt,Collection<SootMethod>> Fields inherited from class sootup.analysis.interprocedural.icfg.AbstractJimpleBasedICFG
bodyToStmtGraph, enableExceptions, methodToCallsFromWithin, methodToParameterRefs, view -
Constructor Summary
ConstructorsConstructorDescriptionJimpleBasedInterproceduralCFG(CallGraph cg, View view, boolean enableExceptions, boolean includeReflectiveCalls) JimpleBasedInterproceduralCFG(View view, List<MethodSignature> cgEntryPoints, boolean enableExceptions, boolean includeReflectiveCalls) -
Method Summary
Modifier and TypeMethodDescriptionbuildICFGGraph(CallGraph callGraph) voidcomputeAllCalls(List<MethodSignature> entryPoints, Map<MethodSignature, StmtGraph<?>> signatureToStmtGraph, CallGraph callGraph) getCalleesOfCallAt(@NonNull Stmt u) getCallersOf(@NonNull SootMethod m) getCg()protected voidMethods inherited from class sootup.analysis.interprocedural.icfg.AbstractJimpleBasedICFG
allNonCallEndNodes, allNonCallStartNodes, createStmtToOwnerMap, getBodyOf, getCallsFromWithin, getCallsFromWithinMethod, getEndPointsOf, getMethodOf, getOrCreateStmtGraph, getOrCreateStmtGraph, getParameterRefs, getPredsOf, getPredsOfCallAt, getReturnSitesOfCallAt, getStartPointsOf, getSuccsOf, initializeStmtToOwner, isBranchTarget, isCallStmt, isExitStmt, isFallThroughSuccessor, isReachable, isReturnSite, isStartPoint, makeGraph, setOwnerStatement
-
Field Details
-
logger
protected static final org.slf4j.Logger logger -
includeReflectiveCalls
protected boolean includeReflectiveCalls -
cg
-
loaderUnitToCallees
-
stmtToCallees
-
loaderMethodToCallers
-
methodToCallers
-
-
Constructor Details
-
JimpleBasedInterproceduralCFG
public JimpleBasedInterproceduralCFG(View view, List<MethodSignature> cgEntryPoints, boolean enableExceptions, boolean includeReflectiveCalls) -
JimpleBasedInterproceduralCFG
-
-
Method Details
-
getCg
-
buildICFGGraph
-
computeAllCalls
public void computeAllCalls(List<MethodSignature> entryPoints, Map<MethodSignature, StmtGraph<?>> signatureToStmtGraph, CallGraph callGraph) -
initializeStmtToOwner
protected void initializeStmtToOwner() -
getCalleesOfCallAt
-
getCallersOf
-