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 |
includePhantomCallees |
protected boolean |
includeReflectiveCalls |
protected <any> |
loaderMethodToCallers |
protected <any> |
loaderUnitToCallees |
protected static Logger |
logger |
protected <any> |
methodToCallers |
protected <any> |
unitToCallees |
bodyToUnitGraph, enableExceptions, methodToCallsFromWithin, methodToParameterRefs, unitToOwner
Constructor and Description |
---|
JimpleBasedInterproceduralCFG() |
JimpleBasedInterproceduralCFG(boolean enableExceptions) |
JimpleBasedInterproceduralCFG(boolean enableExceptions,
boolean includeReflectiveCalls) |
Modifier and Type | Method and Description |
---|---|
java.util.Collection<SootMethod> |
getCalleesOfCallAt(Unit u)
Returns all callee methods for a given call.
|
java.util.Collection<Unit> |
getCallersOf(SootMethod m)
Returns all caller statements/nodes of a given method.
|
protected void |
initializeUnitToOwner() |
void |
initializeUnitToOwner(SootMethod m) |
void |
setIncludePhantomCallees(boolean includePhantomCallees)
Sets whether methods that operate on the callgraph shall also return
phantom methods as potential callees
|
allNonCallEndNodes, allNonCallStartNodes, getCallsFromWithin, getEndPointsOf, getMethodOf, getOrCreateUnitGraph, getOrCreateUnitGraph, getParameterRefs, getPredsOf, getPredsOfCallAt, getReturnSitesOfCallAt, getStartPointsOf, getSuccsOf, isBranchTarget, isCallStmt, isExitStmt, isFallThroughSuccessor, isReachable, isReturnSite, isStartPoint, makeGraph
protected static final Logger logger
protected boolean includeReflectiveCalls
protected boolean includePhantomCallees
protected final CallGraph cg
protected <any> loaderUnitToCallees
protected final <any> unitToCallees
protected <any> loaderMethodToCallers
protected final <any> methodToCallers
public JimpleBasedInterproceduralCFG()
public JimpleBasedInterproceduralCFG(boolean enableExceptions)
public JimpleBasedInterproceduralCFG(boolean enableExceptions, boolean includeReflectiveCalls)
protected void initializeUnitToOwner()
public void initializeUnitToOwner(SootMethod m)
public java.util.Collection<SootMethod> getCalleesOfCallAt(Unit u)
InterproceduralCFG
public java.util.Collection<Unit> getCallersOf(SootMethod m)
InterproceduralCFG
public void setIncludePhantomCallees(boolean includePhantomCallees)
includePhantomCallees
- True if phantom methods shall be returned as potential
callees, otherwise false