soot.jimple.toolkits.infoflow
Class InfoFlowAnalysis
java.lang.Object
soot.jimple.toolkits.infoflow.InfoFlowAnalysis
public class InfoFlowAnalysis
- extends Object
Constructor Summary |
InfoFlowAnalysis(boolean includePrimitiveDataFlow,
boolean includeInnerFields)
|
InfoFlowAnalysis(boolean includePrimitiveDataFlow,
boolean includeInnerFields,
boolean printDebug)
|
Method Summary |
protected MutableDirectedGraph |
getInvokeAbbreviatedInfoFlowGraph(InvokeExpr ie,
SootMethod context)
|
protected HashMutableDirectedGraph |
getInvokeInfoFlowSummary(InvokeExpr ie,
Stmt is,
SootMethod context)
|
SmartMethodInfoFlowAnalysis |
getMethodInfoFlowAnalysis(SootMethod sm)
|
HashMutableDirectedGraph |
getMethodInfoFlowSummary(SootMethod sm)
Returns a BACKED MutableDirectedGraph whose nodes are EquivalentValue
wrapped Refs. |
HashMutableDirectedGraph |
getMethodInfoFlowSummary(SootMethod sm,
boolean doFullAnalysis)
|
static EquivalentValue |
getNodeForFieldRef(SootMethod sm,
SootField sf)
Returns an unmodifiable list of EquivalentValue wrapped Refs that sink
flows from when method sm is called. |
static EquivalentValue |
getNodeForFieldRef(SootMethod sm,
SootField sf,
Local realLocal)
|
static EquivalentValue |
getNodeForParameterRef(SootMethod sm,
int i)
|
static EquivalentValue |
getNodeForReturnRef(SootMethod sm)
|
static EquivalentValue |
getNodeForThisRef(SootMethod sm)
|
static String |
getNodeLabel(Object o)
|
static String |
getNodeName(Object o)
|
boolean |
includesInnerFields()
|
boolean |
includesPrimitiveInfoFlow()
|
boolean |
printDebug()
|
static void |
printGraphToDotFile(String filename,
DirectedGraph graph,
String graphname,
boolean onePage)
|
static void |
printInfoFlowSummary(DirectedGraph g)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InfoFlowAnalysis
public InfoFlowAnalysis(boolean includePrimitiveDataFlow,
boolean includeInnerFields)
InfoFlowAnalysis
public InfoFlowAnalysis(boolean includePrimitiveDataFlow,
boolean includeInnerFields,
boolean printDebug)
includesPrimitiveInfoFlow
public boolean includesPrimitiveInfoFlow()
includesInnerFields
public boolean includesInnerFields()
printDebug
public boolean printDebug()
getMethodInfoFlowAnalysis
public SmartMethodInfoFlowAnalysis getMethodInfoFlowAnalysis(SootMethod sm)
getMethodInfoFlowSummary
public HashMutableDirectedGraph getMethodInfoFlowSummary(SootMethod sm)
- Returns a BACKED MutableDirectedGraph whose nodes are EquivalentValue
wrapped Refs. It's perfectly safe to modify this graph, just so long as
new nodes are EquivalentValue wrapped Refs.
getMethodInfoFlowSummary
public HashMutableDirectedGraph getMethodInfoFlowSummary(SootMethod sm,
boolean doFullAnalysis)
getNodeForFieldRef
public static EquivalentValue getNodeForFieldRef(SootMethod sm,
SootField sf)
- Returns an unmodifiable list of EquivalentValue wrapped Refs that sink
flows from when method sm is called.
getNodeForFieldRef
public static EquivalentValue getNodeForFieldRef(SootMethod sm,
SootField sf,
Local realLocal)
getNodeForParameterRef
public static EquivalentValue getNodeForParameterRef(SootMethod sm,
int i)
getNodeForReturnRef
public static EquivalentValue getNodeForReturnRef(SootMethod sm)
getNodeForThisRef
public static EquivalentValue getNodeForThisRef(SootMethod sm)
getInvokeInfoFlowSummary
protected HashMutableDirectedGraph getInvokeInfoFlowSummary(InvokeExpr ie,
Stmt is,
SootMethod context)
getInvokeAbbreviatedInfoFlowGraph
protected MutableDirectedGraph getInvokeAbbreviatedInfoFlowGraph(InvokeExpr ie,
SootMethod context)
printInfoFlowSummary
public static void printInfoFlowSummary(DirectedGraph g)
printGraphToDotFile
public static void printGraphToDotFile(String filename,
DirectedGraph graph,
String graphname,
boolean onePage)
getNodeName
public static String getNodeName(Object o)
getNodeLabel
public static String getNodeLabel(Object o)