soot.jimple.toolkits.infoflow
Class InfoFlowAnalysis

java.lang.Object
  extended by 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
 

Constructor Detail

InfoFlowAnalysis

public InfoFlowAnalysis(boolean includePrimitiveDataFlow,
                        boolean includeInnerFields)

InfoFlowAnalysis

public InfoFlowAnalysis(boolean includePrimitiveDataFlow,
                        boolean includeInnerFields,
                        boolean printDebug)
Method Detail

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)