Class LineNumberTableReader
java.lang.Object
com.ibm.wala.shrike.shrikeCT.AttributeReader
com.ibm.wala.shrike.shrikeCT.LineNumberTableReader
This class reads LineNumberTable attributes.
Instead of constructing a LineNumberTableReader directly, consider just calling LineNumberTableReader.makeBytecodeToSourceMap for convenient access to aggregate line number data from all the LineNumberTable attributes for a given Code.
-
Field Summary
Fields inherited from class com.ibm.wala.shrike.shrikeCT.AttributeReader
attr, cr, length
-
Constructor Summary
ConstructorDescriptionBuild a reader for a LineNumberTable attribute. -
Method Summary
Modifier and TypeMethodDescriptionint[]
static int[]
Construct a "bytecode to source" map for the given code.Methods inherited from class com.ibm.wala.shrike.shrikeCT.AttributeReader
checkSize, checkSizeEquals, getClassReader, getRawOffset, getRawSize
-
Constructor Details
-
LineNumberTableReader
Build a reader for a LineNumberTable attribute.- Throws:
InvalidClassFileException
-
-
Method Details
-
getRawTable
public int[] getRawTable()- Returns:
- the raw line number table data, a flattened sequence of (startPC, lineNumber) pairs
-
makeBytecodeToSourceMap
public static int[] makeBytecodeToSourceMap(CodeReader code) throws InvalidClassFileException, IllegalArgumentException Construct a "bytecode to source" map for the given code. This method aggregates all the LineNumberTable attributes for the code into one handy data structure.- Returns:
- an array mapping each byte of the bytecode bytes to the line number that that byte belongs to, or null if there is no line number data in the Code
- Throws:
InvalidClassFileException
IllegalArgumentException
-