Class LineNumberTableReader


  • public final class LineNumberTableReader
    extends AttributeReader
    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.

    • Method Detail

      • 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,
                                                    java.lang.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
        java.lang.IllegalArgumentException