public class JimpleBasedInterproceduralCFG extends AbstractJimpleBasedICFG
InterproceduralCFG interface. Includes all statements reachable from
Scene.getEntryPoints() 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.| Modifier and Type | Class and Description |
|---|---|
class |
JimpleBasedInterproceduralCFG.EdgeFilter |
| Modifier and Type | Field and Description |
|---|---|
protected CallGraph |
cg |
protected boolean |
fallbackToImmediateCallees |
protected boolean |
includePhantomCallees |
protected boolean |
includeReflectiveCalls |
protected com.google.common.cache.CacheLoader<SootMethod,Collection<Unit>> |
loaderMethodToCallers |
protected com.google.common.cache.CacheLoader<Unit,Collection<SootMethod>> |
loaderUnitToCallees |
protected static org.slf4j.Logger |
logger |
protected com.google.common.cache.LoadingCache<SootMethod,Collection<Unit>> |
methodToCallers |
protected com.google.common.cache.LoadingCache<Unit,Collection<SootMethod>> |
unitToCallees |
bodyToUnitGraph, enableExceptions, methodToCallsFromWithin, methodToParameterRefs| Constructor and Description |
|---|
JimpleBasedInterproceduralCFG() |
JimpleBasedInterproceduralCFG(boolean enableExceptions) |
JimpleBasedInterproceduralCFG(boolean enableExceptions,
boolean includeReflectiveCalls) |
| Modifier and Type | Method and Description |
|---|---|
protected JimpleBasedInterproceduralCFG.EdgeFilter |
createEdgeFilter() |
Collection<SootMethod> |
getCalleesOfCallAt(Unit u) |
Collection<Unit> |
getCallersOf(SootMethod m) |
protected void |
initializeUnitToOwner() |
void |
setFallbackToImmediateCallees(boolean fallbackToImmediateCallees)
Sets whether methods that operate on the callgraph shall return the immediate callee of a call site if the callgraph has
no outgoing edges
|
void |
setIncludePhantomCallees(boolean includePhantomCallees)
Sets whether methods that operate on the callgraph shall also return phantom methods as potential callees
|
allNonCallEndNodes, allNonCallStartNodes, createUnitToOwnerMap, getBodyOf, getCallsFromWithin, getCallsFromWithinMethod, getEndPointsOf, getMethodOf, getOrCreateUnitGraph, getOrCreateUnitGraph, getParameterRefs, getPredsOf, getPredsOfCallAt, getReturnSitesOfCallAt, getStartPointsOf, getSuccsOf, initializeUnitToOwner, initializeUnitToOwner, isBranchTarget, isCallStmt, isExitStmt, isFallThroughSuccessor, isReachable, isReturnSite, isStartPoint, makeGraph, setOwnerStatementprotected static final org.slf4j.Logger logger
protected boolean includeReflectiveCalls
protected boolean includePhantomCallees
protected boolean fallbackToImmediateCallees
protected final CallGraph cg
protected com.google.common.cache.CacheLoader<Unit,Collection<SootMethod>> loaderUnitToCallees
protected final com.google.common.cache.LoadingCache<Unit,Collection<SootMethod>> unitToCallees
protected com.google.common.cache.CacheLoader<SootMethod,Collection<Unit>> loaderMethodToCallers
protected final com.google.common.cache.LoadingCache<SootMethod,Collection<Unit>> methodToCallers
public JimpleBasedInterproceduralCFG()
public JimpleBasedInterproceduralCFG(boolean enableExceptions)
public JimpleBasedInterproceduralCFG(boolean enableExceptions,
boolean includeReflectiveCalls)
protected void initializeUnitToOwner()
public Collection<SootMethod> getCalleesOfCallAt(Unit u)
public Collection<Unit> getCallersOf(SootMethod m)
public void setIncludePhantomCallees(boolean includePhantomCallees)
includePhantomCallees - True if phantom methods shall be returned as potential callees, otherwise falsepublic void setFallbackToImmediateCallees(boolean fallbackToImmediateCallees)
fallbackToImmediateCallees - True to return the immediate callee if the callgraph does not contain any edges for the respective call site,
false to return an empty set in such casesprotected JimpleBasedInterproceduralCFG.EdgeFilter createEdgeFilter()
Copyright © 2024 Soot OSS. All rights reserved.