public class BackwardsObservableICFG extends Object implements ObservableICFG<soot.Unit,soot.SootMethod>
| Modifier and Type | Field and Description |
|---|---|
protected ObservableICFG<soot.Unit,soot.SootMethod> |
delegate |
| Constructor and Description |
|---|
BackwardsObservableICFG(ObservableICFG<soot.Unit,soot.SootMethod> fwOICFG) |
| Modifier and Type | Method and Description |
|---|---|
void |
addCalleeListener(CalleeListener listener)
Registers a listener that will be notified whenever a callee is added
|
void |
addCallerListener(CallerListener listener)
Registers a listener that will be notified whenever a caller is added.
|
void |
addUnbalancedMethod(soot.SootMethod method) |
Set<soot.Unit> |
allNonCallEndNodes() |
Set<soot.Unit> |
allNonCallStartNodes()
Returns the set of all nodes that are neither call nor start nodes.
|
Collection<soot.Unit> |
getAllPrecomputedCallers(soot.SootMethod sootMethod)
Returns all precomputed callers for a given method.
|
soot.jimple.toolkits.callgraph.CallGraph |
getCallGraphCopy() |
Set<soot.Unit> |
getCallsFromWithin(soot.SootMethod m)
Returns all call sites within a given method.
|
Collection<soot.Unit> |
getEndPointsOf(soot.SootMethod m) |
soot.SootMethod |
getMethodOf(soot.Unit n)
Returns the method containing a node.
|
int |
getNumberOfEdgesTakenFromPrecomputedGraph() |
List<soot.Value> |
getParameterRefs(soot.SootMethod m)
Returns the list of parameter references used in the method's body.
|
List<soot.Unit> |
getPredsOf(soot.Unit u) |
Collection<soot.Unit> |
getStartPointsOf(soot.SootMethod m)
Returns all start points of a given method.
|
List<soot.Unit> |
getSuccsOf(soot.Unit n)
Returns the successor nodes.
|
boolean |
isCallStmt(soot.Unit stmt)
Returns
true if the given statement is a call site. |
boolean |
isExitStmt(soot.Unit stmt)
Returns
true if the given statement leads to a method return (exceptional or not). |
boolean |
isReachable(soot.Unit u)
Checks whether the given statement is reachable from the entry point
|
boolean |
isStartPoint(soot.Unit stmt)
Returns true is this is a method's start statement.
|
boolean |
isUnbalancedMethod(soot.SootMethod method) |
void |
resetCallGraph()
Resets the call graph.
|
protected final ObservableICFG<soot.Unit,soot.SootMethod> delegate
public BackwardsObservableICFG(ObservableICFG<soot.Unit,soot.SootMethod> fwOICFG)
public List<soot.Unit> getSuccsOf(soot.Unit n)
ObservableICFGgetSuccsOf in interface ObservableICFG<soot.Unit,soot.SootMethod>public Collection<soot.Unit> getAllPrecomputedCallers(soot.SootMethod sootMethod)
ObservableICFGObservableICFG.addCalleeListener(CalleeListener)
only differs when using dynamic call graph.getAllPrecomputedCallers in interface ObservableICFG<soot.Unit,soot.SootMethod>public Collection<soot.Unit> getStartPointsOf(soot.SootMethod m)
ObservableICFGgetStartPointsOf in interface ObservableICFG<soot.Unit,soot.SootMethod>public boolean isExitStmt(soot.Unit stmt)
ObservableICFGtrue if the given statement leads to a method return (exceptional or not). For backward
analyses may also be start statements.isExitStmt in interface ObservableICFG<soot.Unit,soot.SootMethod>public boolean isStartPoint(soot.Unit stmt)
ObservableICFGisStartPoint in interface ObservableICFG<soot.Unit,soot.SootMethod>public Set<soot.Unit> allNonCallStartNodes()
ObservableICFGallNonCallStartNodes in interface ObservableICFG<soot.Unit,soot.SootMethod>public List<soot.Unit> getPredsOf(soot.Unit u)
getPredsOf in interface ObservableICFG<soot.Unit,soot.SootMethod>public Collection<soot.Unit> getEndPointsOf(soot.SootMethod m)
getEndPointsOf in interface ObservableICFG<soot.Unit,soot.SootMethod>public Set<soot.Unit> allNonCallEndNodes()
allNonCallEndNodes in interface ObservableICFG<soot.Unit,soot.SootMethod>public soot.SootMethod getMethodOf(soot.Unit n)
ObservableICFGgetMethodOf in interface ObservableICFG<soot.Unit,soot.SootMethod>n - The node for which to get the parent methodpublic Set<soot.Unit> getCallsFromWithin(soot.SootMethod m)
ObservableICFGgetCallsFromWithin in interface ObservableICFG<soot.Unit,soot.SootMethod>public boolean isCallStmt(soot.Unit stmt)
ObservableICFGtrue if the given statement is a call site.isCallStmt in interface ObservableICFG<soot.Unit,soot.SootMethod>public List<soot.Value> getParameterRefs(soot.SootMethod m)
ObservableICFGnull entries for
parameters not referenced in the body. The returned list is of fixed size.getParameterRefs in interface ObservableICFG<soot.Unit,soot.SootMethod>public boolean isReachable(soot.Unit u)
ObservableICFGisReachable in interface ObservableICFG<soot.Unit,soot.SootMethod>u - The statement to checkpublic soot.jimple.toolkits.callgraph.CallGraph getCallGraphCopy()
getCallGraphCopy in interface ObservableICFG<soot.Unit,soot.SootMethod>public void addCalleeListener(CalleeListener listener)
ObservableICFGaddCalleeListener in interface ObservableICFG<soot.Unit,soot.SootMethod>public void addCallerListener(CallerListener listener)
ObservableICFGaddCallerListener in interface ObservableICFG<soot.Unit,soot.SootMethod>public void addUnbalancedMethod(soot.SootMethod method)
addUnbalancedMethod in interface ObservableICFG<soot.Unit,soot.SootMethod>public boolean isUnbalancedMethod(soot.SootMethod method)
isUnbalancedMethod in interface ObservableICFG<soot.Unit,soot.SootMethod>public int getNumberOfEdgesTakenFromPrecomputedGraph()
getNumberOfEdgesTakenFromPrecomputedGraph in interface ObservableICFG<soot.Unit,soot.SootMethod>public void resetCallGraph()
ObservableICFGresetCallGraph in interface ObservableICFG<soot.Unit,soot.SootMethod>Copyright © 2023. All rights reserved.