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
Modifier and TypeFieldDescriptionprotected final CallGraph
protected boolean
protected com.google.common.cache.CacheLoader<SootMethod,
Collection<Stmt>> protected com.google.common.cache.CacheLoader<Stmt,
Collection<SootMethod>> protected static final org.slf4j.Logger
protected 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
ConstructorDescriptionJimpleBasedInterproceduralCFG
(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) void
computeAllCalls
(List<MethodSignature> entryPoints, Map<MethodSignature, StmtGraph<?>> signatureToStmtGraph, CallGraph callGraph) getCg()
protected void
Methods 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
-