|
||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
AbstractDispatchStrategy | Strategy for finding the set of possible targets of an instance invocation. |
AssertionCreator | Analyzes the conditions of if and switch statements and produces corresponding assertion statement for the intermediate program. |
FieldReferenceTranslator | |
IntermediateFactory | This is a Facade pattern, used by StatementTranslatorImpl and MethodCallTranslator . |
Jimple2IntermediateFactory | A configuration for the jimple-to-intermediate translation. |
MethodCallTranslator | Handles certain method calls specially by creating intermediate statements for them. |
MethodTranslator | Translates the bodies of jimple-methods into intermediate form. |
StatementTranslator | Translates individual jimple-statements into intermediate code, which is put into
an IntermediateFactory . |
StatementTranslatorFacade | Handles translation of statements when requested by MethodTranslator . |
StaticStringTypes | Provides the static string types of return values, parameters, and fields. |
TaintAnalysisStrategy | Used for taint analysis. |
TranslationContext | Provides information from the higher-level aspects of the analysis to lower-level aspects. |
Class Summary | |
---|---|
AbstractDispatchClassHierarchy | Finds the possible targets of an invocation using the class hierarchy of the application. |
ApplicationFieldReferenceTranslator | |
ApplicationMethodCallTranslator | Calls to non-external methods and constructors are translated to Call statements. |
AssertionBranch | A subgraph containing assertions. |
AssertionBranches | A pair of assertion branches (AssertionBranch ); corresponding to the
true and false outcomes of a branching condition, respectively. |
AssertionContext | |
AssertionCreatorImpl | |
Automatons | Provides automatons for common Java types. |
BuiltinMethodCallTranslator | Translates calls to methods declared in String , StringBuffer , StringBuilder , and Object into
statements, modelling them as precisely as possible. |
CompositeFieldReferenceTranslator | |
CompositeMethodCallTranslator | Groups multiple translators together. |
ControlFlowBuilder | Utility class assisting in the construction of method bodies. |
ExprAnswerVisitor<Q,A> | Jimple visitor pattern that takes an auxillary parameter and has a return value. |
HotspotInfo | Contains a Hotspot statement and information about which jimple-expression,
Java source file, class, method, and line number it was originally defined at. |
HotspotValueBoxPair | Contains a Hotspot statement and the ValueBox holding the expression
that was originally marked as the hotspot. |
Jimple2Intermediate | Converter from Jimple code to intermediate representation. |
Jimple2IntermediateFactoryImpl | |
MethodTranslatorImpl | |
NaiveMethodCallTranslator | Method-call translator that can't handle any methods. |
PrintClassHierarchy | Prints all ancestor types of a given class or interface. |
ResolverFieldReferenceTranslator | |
ResolverMethodCallTranslator | Uses a list of Resolver strategies to translate method calls. |
StatementTranslatorFacadeImpl | Acts as the middle-man between MethodTranslator and StatementTranslatorImpl . |
StatementTranslatorImpl | Translates Jimple-expressions and -statements into Statement s in intermediate form. |
StaticStringTypesNull | Defines no static string types. |
ThisPointerAnalysis | Determines which variables definitely refer to this at each program point. |
TranslatedStatement | Contains the entry and exit points for the control-flow graph of a single
translated jimple-statement, and a list of all the Hotspot statements
within. |
Types | Contains static methods for converting Java types into Intermediate types. |
VariableManager | Keeps a mapping from soot locals and fields, to their corresponding intermediate locals and fields. |
Translating Jimple code into intermediate representation.
Intermediate representation (IR) is simplified compared to the Jimple code in the following ways:
String
, StringBuffer
,
StringBuilder
or array (of any dimension) of
String
are retained. Only operations on these types occur in the IR.
Variables declared as a supertype of one of those, such as Object
or Serializable
,
are also retained.
null
" is added as an extra
possibility.
StringBuffer
, StringBuilder
,
or String
array value escapes into
unknown code, it is marked as escaping at that point in the program by a
special escape construct in the IR.
This code may be used under the terms of the GNU General Public License.
|
||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |