Class Analyzer
java.lang.Object
com.ibm.wala.shrike.shrikeBT.analysis.Analyzer
- Direct Known Subclasses:
Verifier
- Author:
- roca
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classThis exception is thrown by verify() when it fails.static final classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int[][]protected BitSetprotected final Stringprotected final ExceptionHandler[][]protected ClassHierarchyProviderprotected final IInstruction[]protected int[]protected final booleanprotected final booleanprotected String[][]protected intprotected intprotected static final int[]protected static final String[]protected final Stringprotected String[][]protected int[]static final Stringstatic final Stringprotected String[][] -
Constructor Summary
ConstructorsModifierConstructorDescriptionAnalyzer(boolean isConstructor, boolean isStatic, String classType, String signature, IInstruction[] instructions, ExceptionHandler[][] handlers, int[] instToBC, String[][] vars) protectedAnalyzer(MethodData info) protectedAnalyzer(MethodData info, int[] instToBC, String[][] vars) -
Method Summary
Modifier and TypeMethodDescriptionfinal voidcomputeTypes(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath) Verify the method and compute types at every program point.static AnalyzercreateAnalyzer(MethodData info) final StringfindCommonSupertype(String t1, String t2) final int[][]final BitSetfinal IInstruction[]final String[][]final BitSetgetReachableFrom(int from) final BitSetgetReachableFrom(int from, boolean followHandlers, BitSet mask) final voidgetReachableFromUpdate(int from, BitSet reachable, boolean followHandlers, BitSet mask) final voidgetReachingToUpdate(int to, BitSet reaching, BitSet mask) int[]final String[][]protected final voidfinal booleanisSubtypeOf(String t1, String t2) final voidUse class hierarchy information in 'h'.static StringstripSharp(String type)
-
Field Details
-
thisType
- See Also:
-
topType
- See Also:
-
isConstructor
protected final boolean isConstructor -
isStatic
protected final boolean isStatic -
classType
-
signature
-
instructions
-
handlers
-
hierarchy
-
maxStack
protected int maxStack -
maxLocals
protected int maxLocals -
stacks
-
locals
-
stackSizes
protected int[] stackSizes -
basicBlockStarts
-
backEdges
protected int[][] backEdges -
instToBC
protected int[] instToBC -
varTypes
-
noStrings
-
noEdges
protected static final int[] noEdges
-
-
Constructor Details
-
Analyzer
public Analyzer(boolean isConstructor, boolean isStatic, String classType, String signature, IInstruction[] instructions, ExceptionHandler[][] handlers, int[] instToBC, String[][] vars) -
Analyzer
-
Analyzer
-
-
Method Details
-
setClassHierarchy
Use class hierarchy information in 'h'. If this method is not called or h provides only partial hierarchy information, the verifier behaves optimistically. -
getBackEdges
public final int[][] getBackEdges() -
isSubtypeOf
-
findCommonSupertype
-
getBasicBlockStarts
-
getInstructions
-
getReachableFrom
-
getReachableFromUpdate
-
getReachableFrom
-
getReachingToUpdate
-
stripSharp
-
getStackSizes
- Throws:
Analyzer.FailureException
-
initTypeInfo
- Throws:
Analyzer.FailureException
-
computeTypes
public final void computeTypes(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath) throws Analyzer.FailureException Verify the method and compute types at every program point.- Throws:
Analyzer.FailureException- the method contains invalid bytecode
-
getLocalTypes
- Returns:
- an array indexed by instruction index; each entry is an array of Strings giving the types of the locals at that instruction.
-
getStackTypes
- Returns:
- an array indexed by instruction index; each entry is an array of Strings giving the types of the stack elements at that instruction. The top of the stack is the last element of the array.
-
createAnalyzer
-