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 AttributeReader
attr, cr, lengthModifier and TypeFieldDescriptionprotected final intprotected final ClassReaderprotected final int -
Constructor Summary
ConstructorsConstructorDescriptionBuild 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 AttributeReader
checkSize, checkSizeEquals, getClassReader, getRawOffset, getRawSizeModifier and TypeMethodDescriptionprotected final voidcheckSize(int offset, int len) Ensure that the len bytes starting at offset fall within the attribute data.protected final voidcheckSizeEquals(int offset, int len) Ensure that the len bytes starting at offset end at the end of the attribute data.final ClassReaderfinal intfinal int
-
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:
InvalidClassFileExceptionIllegalArgumentException
-