Package com.ibm.wala.shrikeBT.analysis
Class Analyzer
- java.lang.Object
-
- com.ibm.wala.shrikeBT.analysis.Analyzer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAnalyzer.FailureExceptionThis exception is thrown by verify() when it fails.static classAnalyzer.PathElementclassAnalyzer.TypeVisitor
-
Field Summary
Fields Modifier and Type Field Description protected int[][]backEdgesprotected BitSetbasicBlockStartsprotected StringclassTypeprotected ExceptionHandler[][]handlersprotected ClassHierarchyProviderhierarchyprotected IInstruction[]instructionsprotected int[]instToBCprotected booleanisConstructorprotected booleanisStaticprotected String[][]localsprotected intmaxLocalsprotected intmaxStackprotected static int[]noEdgesprotected static String[]noStringsprotected Stringsignatureprotected String[][]stacksprotected int[]stackSizesstatic StringthisTypestatic StringtopTypeprotected String[][]varTypes
-
Constructor Summary
Constructors Modifier Constructor Description Analyzer(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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomputeTypes(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath)Verify the method and compute types at every program point.static AnalyzercreateAnalyzer(MethodData info)StringfindCommonSupertype(String t1, String t2)int[][]getBackEdges()BitSetgetBasicBlockStarts()IInstruction[]getInstructions()String[][]getLocalTypes()BitSetgetReachableFrom(int from)BitSetgetReachableFrom(int from, boolean followHandlers, BitSet mask)voidgetReachableFromUpdate(int from, BitSet reachable, boolean followHandlers, BitSet mask)voidgetReachingToUpdate(int to, BitSet reaching, BitSet mask)int[]getStackSizes()String[][]getStackTypes()protected voidinitTypeInfo()booleanisSubtypeOf(String t1, String t2)voidsetClassHierarchy(ClassHierarchyProvider h)Use class hierarchy information in 'h'.static StringstripSharp(String type)
-
-
-
Field Detail
-
thisType
public static final String thisType
- See Also:
- Constant Field Values
-
topType
public static final String topType
- See Also:
- Constant Field Values
-
isConstructor
protected final boolean isConstructor
-
isStatic
protected final boolean isStatic
-
classType
protected final String classType
-
signature
protected final String signature
-
instructions
protected final IInstruction[] instructions
-
handlers
protected final ExceptionHandler[][] handlers
-
hierarchy
protected ClassHierarchyProvider hierarchy
-
maxStack
protected int maxStack
-
maxLocals
protected int maxLocals
-
stacks
protected String[][] stacks
-
locals
protected String[][] locals
-
stackSizes
protected int[] stackSizes
-
basicBlockStarts
protected BitSet basicBlockStarts
-
backEdges
protected int[][] backEdges
-
instToBC
protected int[] instToBC
-
varTypes
protected String[][] varTypes
-
noStrings
protected static final String[] noStrings
-
noEdges
protected static final int[] noEdges
-
-
Constructor Detail
-
Analyzer
public Analyzer(boolean isConstructor, boolean isStatic, String classType, String signature, IInstruction[] instructions, ExceptionHandler[][] handlers, int[] instToBC, String[][] vars)
-
Analyzer
protected Analyzer(MethodData info)
-
Analyzer
protected Analyzer(MethodData info, int[] instToBC, String[][] vars)
-
-
Method Detail
-
setClassHierarchy
public final void setClassHierarchy(ClassHierarchyProvider h)
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()
-
getBasicBlockStarts
public final BitSet getBasicBlockStarts()
-
getInstructions
public final IInstruction[] getInstructions()
-
getReachableFrom
public final BitSet getReachableFrom(int from)
-
getReachableFromUpdate
public final void getReachableFromUpdate(int from, BitSet reachable, boolean followHandlers, BitSet mask)
-
getReachableFrom
public final BitSet getReachableFrom(int from, boolean followHandlers, BitSet mask)
-
getStackSizes
public int[] getStackSizes() throws Analyzer.FailureException- Throws:
Analyzer.FailureException
-
initTypeInfo
protected final void initTypeInfo() throws Analyzer.FailureException- 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
public final String[][] 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
public final String[][] 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
public static Analyzer createAnalyzer(MethodData info)
-
-