El formato de serie de datos methodLineTables

La serie de datos methodLineTables codifica una tabla con una entrada para cada unidad ejecutable de una clase.

El valor de cada entrada de la tabla methodLineTables es el número de línea (del archivo fuente indicado por la serie de datos classSourceFile) de la unidad ejecutable correspondiente. Por ejemplo, el número de entrada cinco de la tabla da el número de línea de la unidad ejecutable número cinco.

A continuación se ofrece un ejemplo de una serie methodLineTables:
#51+1201#75+11,41
A continuación se explica cómo interpretar la serie:
  • Los dígitos que siguen inmediatamente a un signo de número ("#") representan un número de línea completo en el código fuente de una clase. En el ejemplo, la primera unidad ejecutable del primer método de la clase está en la línea 51.
  • Cada dígito individual que sigue a un signo más ("+") representa el número de líneas que deben añadirse al número de línea anterior para obtener el número de línea de la siguiente unidad ejecutable. En el ejemplo, los dígitos que siguen al signo más (+1201) se utilizan para calcular los números de línea de la segunda a la quinta unidad ejecutable:
    1. 51 + 1 = el número de línea de la segunda unidad ejecutable: 52
    2. 52 + 2 = el número de línea de la tercera unidad ejecutable: 54
    3. 54 + 0 = el número de línea de la cuarta unidad ejecutable: 54 (dos unidades ejecutables en una línea fuente)
    4. 54 + 1 = el número de línea de la quinta unidad ejecutable: 55
  • Cuando un incremento de número de línea es negativo o mayor que nueve, se especifica el número de línea completo de la unidad ejecutable. En el ejemplo, la sexta unidad ejecutable está en la línea 75, veinte números mayor que el número de línea anterior, que era 55. En este caso, se especifica el número de línea completo para la sexta unidad ejecutable y el cálculo del número de línea relativo vuelve a empezar (#75+11):
    1. 75 = el número de línea de la sexta unidad ejecutable
    2. 75 + 1 = el número de línea de la séptima unidad ejecutable: 76
    3. 76 + 1 = el número de línea de la octava unidad ejecutable: 77
  • Una coma (",") indica el final de un método y el principio del siguiente. Los dígitos y los símbolos que siguen a la coma se interpretan como antes. En el ejemplo, el número de línea de la primera unidad ejecutable del segundo método es sólo 4 números mayor que el último número de línea calculado para el método anterior, de modo que el cálculo del número de línea relativo continúa después de la coma (,41):
    1. 77 + 4 = el número de línea de la primera unidad ejecutable del segundo método: 81
    2. 81 + 1 = el número de línea de la segunda unidad ejecutable del segundo método: 82
Nota: No todas las unidades ejecutables tendrán información de fuente asociada. Algunas las crea el compilador para implementar la semántica del lenguaje Java: por ejemplo, manejo de excepciones, inicialización o sincronización. Estas unidades ejecutables generadas tienen un número de línea completo de cero en la serie methodLineTables. Un número de línea completo de cero indica que la información del número de línea no está disponible. Cuando un método entero no tiene información de fuente, aparece como si tuviese una única unidad ejecutable correspondiente al número de línea cero.
A continuación se ofrecen algunos ejemplos más de series methodLineTables y sus significados:
Serie methodLineTables Significado
+5 Si el número de línea de la primera unidad ejecutable del primer método es menor que 10, la serie completa empieza con un signo más para iniciar una serie de incrementos desde la línea cero. En este ejemplo, la primera unidad ejecutable del primer método empieza en la línea 5.
+0 Si el primer método no tiene información de fuente, la serie empieza por +0. Cualquier fragmento de sonda executableUnit que se aplique a un método de este tipo sólo se insertará una vez, al principio del método.
...#437,#457+123... Si la primera unidad ejecutable de un método empieza más de nueve líneas después de la última unidad ejecutable del método anterior, el patrón es una coma, un signo de número y la serie de número de línea correspondiente a la primera unidad ejecutable del nuevo método. En este ejemplo parcial, la primera unidad ejecutable del nuevo método empieza 20 líneas después de la última unidad ejecutable del método anterior.
...#437,+2... Es posible que la última unidad ejecutable de un método requiera la notación "#" y que la primera unidad ejecutable del método siguiente esté sólo a una pequeña distancia. En este ejemplo parcial, la última unidad ejecutable de un método empieza en la línea 437 y la primera unidad ejecutable del siguiente método empieza en la línea 439.
Consulta relacionada
Fragmentos de sonda