| Package | Description |
|---|---|
| soot.jimple |
Public classes for the Jimple intermediate representation.
|
| soot.jimple.internal |
Internal, messy, implementation-specific classes for the Jimple intermediate representation.
|
| soot.jimple.toolkits.annotation.arraycheck |
Classes that carry out an analysis to determine whether or not array bounds
checks are necessary.
|
| soot.jimple.toolkits.annotation.logic | |
| soot.jimple.toolkits.annotation.purity | |
| soot.jimple.toolkits.base |
A toolkit to optimize the Jimple IR.
|
| soot.jimple.toolkits.callgraph | |
| soot.jimple.toolkits.infoflow | |
| soot.jimple.toolkits.pointer | |
| soot.jimple.toolkits.scalar |
A toolkit for scalar optimization of Jimple.
|
| soot.jimple.toolkits.typing.fast | |
| soot.toolkits.graph |
Toolkit to produce and manipulate various types of control flow
graphs.
|
| soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
AssignStmt |
interface |
BreakpointStmt |
interface |
DefinitionStmt |
interface |
EnterMonitorStmt |
interface |
ExitMonitorStmt |
interface |
GotoStmt |
interface |
IdentityStmt |
interface |
IfStmt |
interface |
InvokeStmt |
interface |
LookupSwitchStmt |
interface |
MonitorStmt |
interface |
NopStmt |
interface |
RetStmt |
interface |
ReturnStmt |
interface |
ReturnVoidStmt |
interface |
TableSwitchStmt |
interface |
ThrowStmt |
| Modifier and Type | Class and Description |
|---|---|
class |
PlaceholderStmt |
| Modifier and Type | Method and Description |
|---|---|
Stmt |
JimpleBody.getFirstNonIdentityStmt()
Returns the first non-identity stmt in this body.
|
Stmt |
IfStmt.getTarget() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
PointerStmtSwitch.caseUninterestingStmt(Stmt s)
Any other statement
|
java.util.List |
EqualLocals.getCopiesAt(Stmt s) |
boolean |
EqualLocals.isLocalEqualToAt(Local l1,
Local l2,
Stmt s) |
| Constructor and Description |
|---|
LocalStmtPair(Local local,
Stmt stmt) |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractDefinitionStmt |
class |
AbstractStmt |
class |
JAssignStmt |
class |
JBreakpointStmt |
class |
JEnterMonitorStmt |
class |
JExitMonitorStmt |
class |
JGotoStmt |
class |
JIdentityStmt |
class |
JIfStmt |
class |
JInvokeStmt |
class |
JLookupSwitchStmt |
class |
JNopStmt |
class |
JRetStmt |
class |
JReturnStmt |
class |
JReturnVoidStmt |
class |
JTableSwitchStmt |
class |
JThrowStmt |
| Modifier and Type | Method and Description |
|---|---|
Stmt |
JIfStmt.getTarget() |
| Constructor and Description |
|---|
StmtBox(Stmt s) |
| Modifier and Type | Method and Description |
|---|---|
protected int |
ArrayBoundsChecker.interpretGraph(soot.jimple.toolkits.annotation.arraycheck.WeightedDirectedSparseGraph vgraph,
ArrayRef aref,
Stmt stmt,
soot.jimple.toolkits.annotation.arraycheck.IntContainer zero) |
| Modifier and Type | Field and Description |
|---|---|
protected Stmt |
Loop.backJump |
protected Stmt |
Loop.header |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Collection<Stmt> |
Loop.loopExists |
protected java.util.List<Stmt> |
Loop.loopStatements |
| Modifier and Type | Method and Description |
|---|---|
Stmt |
Loop.getBackJumpStmt()
Returns the statement that jumps back to the head, thereby constituing the loop.
|
Stmt |
Loop.getHead() |
| Modifier and Type | Method and Description |
|---|---|
java.util.Collection<Stmt> |
Loop.getLoopExits()
Returns all loop exists.
|
java.util.List<Stmt> |
Loop.getLoopStatements() |
java.util.Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractInterproceduralAnalysis.analyseCall(java.lang.Object src,
Stmt callStmt,
java.lang.Object dst)
Analyse the call callStmt in the context src, and put the resul into
dst.
|
protected void |
PurityInterproceduralAnalysis.applySummary(java.lang.Object src,
Stmt stmt,
java.lang.Object summary,
java.lang.Object dst) |
protected abstract void |
AbstractInterproceduralAnalysis.applySummary(java.lang.Object src,
Stmt callStmt,
java.lang.Object summary,
java.lang.Object dst)
Interprocedural analysis will call applySummary repeatidly as a
consequence to analyseCall.
|
| Modifier and Type | Method and Description |
|---|---|
Stmt |
ExceptionCheckerError.throwing() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
void |
ExceptionCheckerError.throwing(Stmt s) |
| Constructor and Description |
|---|
ExceptionCheckerError(SootMethod m,
SootClass sc,
Stmt s,
SourceLnPosTag pos) |
| Modifier and Type | Method and Description |
|---|---|
Stmt |
Edge.srcStmt() |
Stmt |
ContextSensitiveEdge.srcStmt() |
Stmt |
VirtualCallSite.stmt() |
| Modifier and Type | Method and Description |
|---|---|
void |
ReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classForName(SootMethod container,
Stmt forNameInvokeStmt)
Adds an edge to all class initializers of all possible receivers
of Class.forName() calls within source.
|
void |
ReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds an edge to the constructor of the target class from this call to
Class.newInstance(). |
void |
ReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.contructorNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds a special edge of kind
Kind.REFL_CONSTR_NEWINSTANCE to all possible target constructors
of this call to Constructor.newInstance(Object...). |
void |
ReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt)
Adds a special edge of kind
Kind.REFL_INVOKE to all possible target methods
of this call to Method.invoke(Object, Object...). |
| Constructor and Description |
|---|
Edge(MethodOrMethodContext src,
Stmt srcUnit,
MethodOrMethodContext tgt) |
VirtualCallSite(Stmt stmt,
SootMethod container,
InstanceInvokeExpr iie,
NumberedString subSig,
Kind kind) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
SmartMethodInfoFlowAnalysis.addFlowToCdfg(Stmt stmt) |
protected HashMutableDirectedGraph |
InfoFlowAnalysis.getInvokeInfoFlowSummary(InvokeExpr ie,
Stmt is,
SootMethod context) |
protected java.util.List |
SmartMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is) |
protected java.util.List |
SimpleMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is,
FlowSet fs) |
| Modifier and Type | Method and Description |
|---|---|
protected RWSet |
SideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
boolean |
LocalMustNotAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s (i.e.
|
boolean |
LocalMustAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s (i.e.
|
java.lang.String |
StrongLocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated or UNKNOWN if
the value of l at s is LocalMustAliasAnalysis.UNKNOWN. |
java.lang.String |
LocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated or UNKNOWN if
the value of l at s is LocalMustAliasAnalysis.UNKNOWN. |
protected java.lang.Object |
SideEffectTagger.keyFor(Stmt s) |
protected java.lang.Object |
FieldRWTagger.keyFor(Stmt s) |
boolean |
StrongLocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
LocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
LocalMustNotAliasAnalysis.notMayAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
RWSet |
SideEffectAnalysis.readSet(SootMethod method,
Stmt stmt) |
RWSet |
SideEffectAnalysis.writeSet(SootMethod method,
Stmt stmt) |
| Modifier and Type | Method and Description |
|---|---|
java.util.Map<Stmt,java.util.List> |
EqualUsesAnalysis.getFirstUseToAliasSet()
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal,
java.util.List boundaryStmts)
Deprecated.
|
java.util.List |
CommonPrecedingEqualValueAnalysis.getCommonAncestorValuesOf(java.util.Map unitToAliasSet,
Stmt s)
Returns a list of EquivalentLocals that must always be equal to l at s
|
java.util.List |
EqualLocalsAnalysis.getCopiesOfAt(Local l,
Stmt s)
Returns a list of EquivalentValue wrapped Locals and Refs that must always be equal to l at s
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
EqualUsesAnalysis.areEqualUses(java.util.Map<Stmt,Local> stmtToLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(java.util.Map<Stmt,Local> stmtToLocal,
java.util.List boundaryStmts)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
void |
UseChecker.defaultCase(Stmt stmt) |
static Type |
AugEvalFunction.eval_(Typing tg,
Value expr,
Stmt stmt,
JimpleBody jb) |
java.util.Collection<Type> |
IEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
java.util.Collection<Type> |
AugEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Value |
IUseVisitor.visit(Value op,
Type useType,
Stmt stmt) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
DominatorAnalysis.dominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|
boolean |
PostDominatorAnalysis.postDominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<Stmt,A> |
AbstractFlowAnalysis.filterUnitToBeforeFlow
Filtered: Maps graph nodes to IN sets.
|
Copyright © 2012-2019 RoboVM AB. All Rights Reserved.