Der Wert der einzelnen Einträge in der methodLineTables-Tabelle ist die Zeilennummer für die jeweilige ausführbare
Einheit (die in der Quellendatei durch die Zeichenfolge classSourceFile benannt ist). Der fünfte Eintrag in der Tabelle enthält beispielsweise
die Zeilennummer der fünften ausführbaren Einheit.
Nachfolgend sehen Sie ein Beispiel für eine Zeichenfolge in methodLineTables:
#51+1201#75+11,41
Diese Zeichenfolge wird wie folgt interpretiert:
- Die Ziffern nach dem Nummernzeichen ("#") repräsentieren eine vollständige Zeilennummer im Quellcode für eine
Klasse. In diesem Beispiel befindet sich die erste ausführbare Einheit der ersten Methode in der Klasse in Zeile
51.
- Die einzelnen Ziffern nach dem Pluszeichen ("+") repräsentieren die Anzahl der Zeilen, die zu der zuletzt angegebenen
Zeilennummer addiert werden müssen, um die Zeilennummer der nächsten ausführbaren Einheit zu erhalten. In diesem Beispiel werden anhand der Ziffern nach dem
Pluszeichen
(+1201) die folgenden Zeilennummern für die zweite bis fünfte ausführbare Einheit berechnet:
- 51 + 1 = Zeilennummer der zweiten ausführbaren Einheit (52)
- 52 + 2 = Zeilennummer der dritten ausführbaren Einheit (54)
- 54 + 0 = Zeilennummer der vierten Ausführbaren Einheit (54) (zwei ausführbare Einheiten in einer Quellenzeile)
- 54 + 1 = Zeilennummer der fünften ausführbaren Einheit (55)
- Wenn das Inkrement für die Zeilennummer negativ oder größer als neun ist, wird die vollständige Zeilennummer für die
ausführbare Einheit angegeben. In diesem Beispiel befindet sich die sechste ausführbare Einheit in Zeile 75. Diese Zahl ist um 20 größer als
die letzte Zeilennummer (55). In diesem Fall wird für die sechste ausführbare Einheit die vollständige Zeilennummer angegeben. Anschließend beginnt erneut
die relative Angabe zur Berechnung der Zeilennummer
(#75+11):
- 75 = Zeilennummer der sechsten ausführbaren Einheit
- 75 + 1 = Zeilennummer der siebenten ausführbaren Einheit (76)
- 76 + 1 = Zeilennummer der achten ausführbaren Einheit (77)
- Ein Komma (",") zeigt das Ende einer Methode und den Anfang der nächsten Methode an. Die Ziffern und Symbole nach dem Komma werden wie oben beschrieben
interpretiert. Im Beispiel ist die Zeilennummer für die erste ausführbare Einheit der zweiten Methode nur um 4 größer
als die letzte berechnete Zeilennummer für die vorherige Methode. Deshalb wird nach dem Komma die relative
Angabe für die Zeilennummernberechnung fortgesetzt
(,41):
- 77 + 4 = Zeilennummer für die erste ausführbare Einheit der zweiten Methode (81)
- 88 + 1 = Zeilennummer für die zweite ausführbare Einheit der zweiten Methode (89)
Anmerkung: Nicht allen ausführbaren Einheiten sind Quelleninformationen zugeordnet. Manche Einheiten werden vom Compiler erstellt, um die Semantik der Sprache Java zu
implementieren, z. B. für die Behandlung von Ausnahmen, die Initialisierung oder die Synchronisation. Diese generierten ausführbaren
Einheiten haben in der
methodLineTables-Zeichenfolge die vollständige Zeilennummer null. Lautet die vollständige Zeilennummer null, ist keine Zeilennummernangabe
verfügbar. Gibt es für eine gesamte Methode keine Quelleninformationen, erscheint sie als Methode mit nur einer ausführbaren Einheit, die die
Zeilennummer null hat.
Nachfolgend sehen Sie einige weitere Beispiele für
methodLineTables-Zeichenfolgen und ihre Bedeutung:
methodLineTables-Zeichenfolge |
Bedeutung |
+5 |
Ist die Zeilennummer für die erste ausführbare Einheit der ersten Methode kleiner als zehn, beginnt die
gesamte Zeichenfolge mit einem Pluszeichen, um die Addition ausgehend von Zeile null zu beginnen. In
diesem Beispiel beginnt die erste ausführbare Einheit der ersten Methode in Zeile
5. |
+0 |
Wenn es für die erste Methode keine Quelleninformationen gibt, beginnt die Zeichenfolge
mit +0. Alle Sondenfragmente des Typs executableUnit, die auf eine solche Methode anzuwenden sind,
werden nur einmal am Anfang der Methode eingefügt. |
...#437,#457+123... |
Wenn die erste ausführbare Einheit für eine Methode mehr als neun Zeilen nach der letzten ausführbaren Einheit der vorherigen Methode
beginnt, besteht das Muster aus einem Komma, einem Nummernzeichen und der Zeichenfolge mit der Zeilennummer der ersten ausführbaren Einheit in der
neuen Methode. In diesem Beispielausschnitt beginnt die erste ausführbare Einheit der neuen Methode 20 Zeilen nach der letzten
ausführbaren Einheit der vorherigen Methode. |
...#437,+2... |
Es ist möglich, dass die letzte ausführbare Einheit einer Methode mit dem Zeichen
"#" angegeben werden muss und die nächste Methode nur wenige Zeilen weiter beginnt. In diesem Beispielausschnitt
beginnt die letzte ausführbare Einheit einer Methode in Zeile 437. Die erste ausführbare Einheit der
nächsten Methode beginnt in Zeile 439. |