Class AbstractJimpleBasedICFG
java.lang.Object
sootup.analysis.interprocedural.icfg.AbstractJimpleBasedICFG
- All Implemented Interfaces:
heros.InterproceduralCFG<Stmt,
,SootMethod> BiDiInterproceduralCFG<Stmt,
SootMethod>
- Direct Known Subclasses:
JimpleBasedInterproceduralCFG
public abstract class AbstractJimpleBasedICFG
extends Object
implements BiDiInterproceduralCFG<Stmt,SootMethod>
-
Field Summary
Modifier and TypeFieldDescriptionprotected final boolean
protected com.google.common.cache.LoadingCache<SootMethod,
Set<Stmt>> protected com.google.common.cache.LoadingCache<SootMethod,
List<Value>> protected View
-
Constructor Summary
ModifierConstructorDescriptionprotected
protected
AbstractJimpleBasedICFG
(boolean enableExceptions) -
Method Summary
Modifier and TypeMethodDescriptiongetCallsFromWithinMethod
(SootMethod method) returns entry points of a methodgetMethodOf
(Stmt stmt) StmtGraph<?>
getOrCreateStmtGraph
(Body body) StmtGraph<?>
getOrCreateStmtGraph
(SootMethod method) getPredsOf
(Stmt u) returns the predecessors of a nodereturns predecessors of a call nodegetSuccsOf
(Stmt stmt) void
boolean
isBranchTarget
(Stmt u, Stmt succ) boolean
isCallStmt
(Stmt stmt) boolean
isExitStmt
(Stmt stmt) boolean
isFallThroughSuccessor
(Stmt stmt, Stmt successorCandidate) boolean
isReachable
(Stmt u) Checks whether the given statement is reachable from the entry pointboolean
isReturnSite
(Stmt n) Gets whether the given statement is a return site of at least one callboolean
isStartPoint
(Stmt stmt) protected StmtGraph<?>
boolean
setOwnerStatement
(Stmt u, Body b) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface heros.InterproceduralCFG
getCalleesOfCallAt, getCallersOf
-
Field Details
-
enableExceptions
protected final boolean enableExceptions -
view
-
bodyToStmtGraph
-
methodToParameterRefs
-
methodToCallsFromWithin
-
-
Constructor Details
-
AbstractJimpleBasedICFG
protected AbstractJimpleBasedICFG() -
AbstractJimpleBasedICFG
protected AbstractJimpleBasedICFG(boolean enableExceptions)
-
-
Method Details
-
createStmtToOwnerMap
-
getBodyOf
-
getMethodOf
- Specified by:
getMethodOf
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
getSuccsOf
- Specified by:
getSuccsOf
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
getOrCreateStmtGraph
- Specified by:
getOrCreateStmtGraph
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod>
-
getOrCreateStmtGraph
-
makeGraph
-
getCallsFromWithinMethod
-
isExitStmt
- Specified by:
isExitStmt
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
isStartPoint
- Specified by:
isStartPoint
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
isFallThroughSuccessor
- Specified by:
isFallThroughSuccessor
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
isBranchTarget
- Specified by:
isBranchTarget
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
getParameterRefs
- Specified by:
getParameterRefs
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod>
-
getStartPointsOf
- Specified by:
getStartPointsOf
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
setOwnerStatement
-
isCallStmt
- Specified by:
isCallStmt
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
allNonCallStartNodes
- Specified by:
allNonCallStartNodes
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
allNonCallEndNodes
- Specified by:
allNonCallEndNodes
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod>
-
getReturnSitesOfCallAt
- Specified by:
getReturnSitesOfCallAt
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
getCallsFromWithin
- Specified by:
getCallsFromWithin
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
initializeStmtToOwner
-
getPredsOf
Description copied from interface:BiDiInterproceduralCFG
returns the predecessors of a node- Specified by:
getPredsOf
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod> - Specified by:
getPredsOf
in interfaceheros.InterproceduralCFG<Stmt,
SootMethod>
-
getEndPointsOf
Description copied from interface:BiDiInterproceduralCFG
returns entry points of a method- Specified by:
getEndPointsOf
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod> - Returns:
-
getPredsOfCallAt
Description copied from interface:BiDiInterproceduralCFG
returns predecessors of a call node- Specified by:
getPredsOfCallAt
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod> - Returns:
-
isReturnSite
Description copied from interface:BiDiInterproceduralCFG
Gets whether the given statement is a return site of at least one call- Specified by:
isReturnSite
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod> - Parameters:
n
- The statement to check- Returns:
- True if the given statement is a return site, otherwise false
-
isReachable
Description copied from interface:BiDiInterproceduralCFG
Checks whether the given statement is reachable from the entry point- Specified by:
isReachable
in interfaceBiDiInterproceduralCFG<Stmt,
SootMethod> - Parameters:
u
- The statement to check- Returns:
- True if there is a control flow path from the entry point of the program to the given statement, otherwise false
-