|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectdk.brics.string.java.Jimple2Intermediate
public class Jimple2Intermediate
Converter from Jimple code to intermediate representation.
Basic rundown of the translation process:Method
objects with empty bodies for each
method in the application.
MethodTranslator
for an overview how how step four is executed.
StringAnalysis
,
MethodTranslator
Constructor Summary | |
---|---|
Jimple2Intermediate(ExternalVisibility ext)
Deprecated. |
|
Jimple2Intermediate(ExternalVisibility ext,
Collection<? extends Resolver> resolvers)
Deprecated. |
|
Jimple2Intermediate(Jimple2IntermediateFactory af)
|
|
Jimple2Intermediate(TaintAnalysisStrategy taintAnalysisStrategy,
Collection<? extends Resolver> resolvers,
ExternalVisibility ext)
Deprecated. |
Method Summary | |
---|---|
VariableType |
fromSootType(Type type)
Given the static type of a variable, returns the most specific variable type we can assign to it. |
Application |
getApplication()
|
Map<ValueBox,String> |
getClassNameMap()
Returns class name for each expression. |
Variable |
getExpressionVariable(Value value)
Returns the variable holding the result of the specified expression. |
Automaton |
getFieldType(SootField field)
Returns the static string type of the specified field, or null if the field has no static string type. |
Map<ValueBox,Integer> |
getLineNumberMap()
Returns line number for each expression. |
Method |
getMethod(SootMethod method)
Returns the intermediate method definition corresponding to the specified Soot method, or null if the method is external. |
Method |
getMethod(String signature)
Returns the method object for the given signature. |
Map<ValueBox,String> |
getMethodNameMap()
Returns method name for each expression. |
Automaton |
getMethodReturnType(SootMethod method)
Returns the static string type of the specified method's return value, or null if the return value has no static string type. |
int |
getNumberOfExpsSkipped()
Returns the number of string constants that have been skipped because they are non-hotspot arguments to non-application class methods. |
Variable |
getParameter(SootMethod sm,
int index)
Returns the parameter variable for the given relevant-arg number in the current method. |
Variable |
getParameter(SootMethod sm,
ParameterRef ref)
Returns the variable corresponding to a soot parameter reference |
Automaton |
getParameterType(SootMethod method,
int paramIndex)
Returns the static string type of the nth parameter to the specified method, or null if the parameter has no static string type. |
int[] |
getRelevantArgNumbers(String signature)
Returns the relevant-arg numbers for the given method. |
Map<ValueBox,String> |
getSourceFileMap()
Returns source file name for each expression. |
TaintAnalysisStrategy |
getTaintAnalysisStrategy()
|
List<SootMethod> |
getTargetsOf(InstanceInvokeExpr expr)
Gets a list of possible targets for the specified invocation. |
Map<SootClass,StringStatement> |
getToStringHotspotMap()
Returns hotspots for toString methods. |
Method |
getToStringMethod(SootClass c)
Returns the intermediate method representing the specified non-interface class's toString method. |
Map<ValueBox,Statement> |
getTranslationMap()
Returns the translation map. |
Automaton |
getTypeAutomaton(Type t)
|
VariableManager |
getVariableManager()
|
boolean |
isApplicationClass(SootClass c)
Checks whether the given class is an application class. |
boolean |
isHotspot(ValueBox expr)
Returns true if the specified value is marked as a hotspot. |
boolean |
isSubtypeOf(SootClass a,
SootClass b)
Returns true if the first argument is a type that extends, implements, or equals the second argument. |
void |
setExpressionVariable(Value value,
Variable variable)
Reports that the specified expression was evaluated and stored in the specified intermediate variable. |
Application |
translateApplicationClasses()
Translates the application classes considering all expressions as hotspots. |
Application |
translateApplicationClasses(Collection<ValueBox> hotspots)
Translates the application classes considering the given expressions as hotspots. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
@Deprecated public Jimple2Intermediate(ExternalVisibility ext)
@Deprecated public Jimple2Intermediate(ExternalVisibility ext, Collection<? extends Resolver> resolvers)
public Jimple2Intermediate(Jimple2IntermediateFactory af)
@Deprecated public Jimple2Intermediate(TaintAnalysisStrategy taintAnalysisStrategy, Collection<? extends Resolver> resolvers, ExternalVisibility ext)
Method Detail |
---|
public VariableType fromSootType(Type type)
fromSootType
in interface TranslationContext
type
- a soot type
VariableType.NULL
are never returned.public Application getApplication()
getApplication
in interface TranslationContext
public Map<ValueBox,String> getClassNameMap()
public Variable getExpressionVariable(Value value)
TranslationContext
getExpressionVariable
in interface TranslationContext
value
- a jimple expression
public Automaton getFieldType(SootField field)
StaticStringTypes
getFieldType
in interface StaticStringTypes
field
- a field
public Map<ValueBox,Integer> getLineNumberMap()
public Method getMethod(SootMethod method)
TranslationContext
getMethod
in interface TranslationContext
public Method getMethod(String signature)
public Map<ValueBox,String> getMethodNameMap()
public Automaton getMethodReturnType(SootMethod method)
StaticStringTypes
getMethodReturnType
in interface StaticStringTypes
method
- a soot method
public int getNumberOfExpsSkipped()
public Variable getParameter(SootMethod sm, int index)
public Variable getParameter(SootMethod sm, ParameterRef ref)
TranslationContext
getParameter
in interface TranslationContext
public Automaton getParameterType(SootMethod method, int paramIndex)
StaticStringTypes
getParameterType
in interface StaticStringTypes
method
- a soot methodparamIndex
- index of the parameter
public int[] getRelevantArgNumbers(String signature)
public Map<ValueBox,String> getSourceFileMap()
public TaintAnalysisStrategy getTaintAnalysisStrategy()
public List<SootMethod> getTargetsOf(InstanceInvokeExpr expr)
TranslationContext
getTargetsOf
in interface TranslationContext
public Map<SootClass,StringStatement> getToStringHotspotMap()
toString
methods.
public Method getToStringMethod(SootClass c)
TranslationContext
getToStringMethod
in interface TranslationContext
c
- an application class that is not an interface.
public Map<ValueBox,Statement> getTranslationMap()
translateApplicationClasses
must be called first.
public Automaton getTypeAutomaton(Type t)
public VariableManager getVariableManager()
getVariableManager
in interface TranslationContext
public boolean isApplicationClass(SootClass c)
public boolean isHotspot(ValueBox expr)
TranslationContext
isHotspot
in interface TranslationContext
public boolean isSubtypeOf(SootClass a, SootClass b)
TranslationContext
isSubtypeOf
in interface TranslationContext
public void setExpressionVariable(Value value, Variable variable)
TranslationContext
setExpressionVariable
in interface TranslationContext
value
- a jimple expressionvariable
- an intermediate variablepublic Application translateApplicationClasses()
public Application translateApplicationClasses(Collection<ValueBox> hotspots)
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |