De waarde van alle items in een methodLineTables-tabel is het regelnummer (in het bronbestand benoemd door de gegevensreeks classSourceFile) van de corresponderende uitvoerbare eenheid. Item nummer vijf is in een tabel bijvoorbeeld het regelnummer van uitvoerbare eenheid vijf.
Dit is een voorbeeld van een methodLineTables-tekenreeks:
#51+1201#75+11,41
De tekenreeks is als volgt opgebouwd:
- De cijfers direct na een getalsaanduiding ("#") vormen een volledig regelnummer in de broncode van een klasse. In het voorbeeld staat de eerste uitvoerbare eenheid van de eerste methode in de klasse op regel 51.
- Een enkel getal na een plusteken ("+") is het aantal regels dat moet worden opgeteld bij het vorige regelnummer om het regelnummer van de volgende uitvoerbare eenheid te berekenen. In het voorbeeld worden de getallen na het plusteken (+1201) gebruikt om de regelnummers van de tweede tot en met de vijfde uitvoerbare eenheid te berekenen:
- 51 + 1 = het regelnummer van de tweede uitvoerbare eenheid: 52
- 52 + 2 = het regelnummer van de derde uitvoerbare eenheid: 54
- 54 + 0 = het regelnummer van de vierde uitvoerbare eenheid: 54 (twee uitvoerbare eenheden op één broncoderegel)
- 54 + 1 = het regelnummer van de vijfde uitvoerbare eenheid: 55
- Als de verhoging van een regelnummer negatief of groter dan negen is, wordt het volledige regelnummer van de uitvoerbare eenheid opgegeven. In het voorbeeld staat de zesde uitvoerbare eenheid op regel 75, twintig meer dan het voorgaande regelnummer (55). In dit geval wordt het volledige regelnummer opgegeven voor de zesde uitvoerbare eenheid en de berekening van het regelnummer ten opzichte van het vorige regelnummer begint opnieuw (#75+11):
- 75 = het regelnummer van de zesde uitvoerbare eenheid
- 75 + 1 = het regelnummer van de zevende uitvoerbare eenheid: 76
- 76 + 1 = het regelnummer van de achtste uitvoerbare eenheid: 77
- Een komma (",") geeft het einde van een methode en het begin van de volgende aan.
De getallen en symbolen na de komma worden geïnterpreteerd zoals tevoren. In het voorbeeld is het regelnummer van de eerste uitvoerbare eenheid in de tweede methode slechts vier hoger dan het laatste regelnummer dat is berekend voor de vorige methode, dus de berekening van het regelnummer ten opzichte van het vorige begint na de komma (,41):
- 77 + 4 = het regelnummer van de eerste uitvoerbare eenheid in de tweede methode: 81
- 81 + 1 = het regelnummer van de tweede uitvoerbare eenheid in de tweede methode: 82
Opmerking: Niet alle uitvoerbare eenheden hebben broninformatie ter beschikking. Sommige worden door de compiler gemaakt om de Java-semantiek te implementeren, bijvoorbeeld afhandeling van uitzonderingen, initialisatie of synchronisatie. Deze gegenereerde uitvoerbare eenheden hebben een volledig regelnummer van nul in de methodLineTables-tekenreeks. Een volledig regelnummer van nul betekent dat er geen informatie over het regelnummer beschikbaar is. Als een volledige methode geen broninformatie heeft, lijkt deze één uitvoerbare eenheid te hebben die correspondeert met het regelnummer nul.
Hier volgen nog enige voorbeelden van methodLineTables-reeksen en hun betekenis:
methodLineTables-reeks |
Betekenis |
+5 |
Als het regelnummer van de eerste uitvoerbare eenheid in de eerste methode kleiner is dan tien, begint de volledige tekenreeks met een plusteken, zodat de regelberekening begint bij regel nul. In dit voorbeeld begint de uitvoerbare eenheid in de eerste methode op regel vijf. |
+0 |
Als over de eerste methode geen broninformatie beschikbaar is, begint de tekenreeks met +0. executableUnit-probefragmenten die op zo'n methode van toepassing zijn, worden slechts één keer ingevoegd aan het begin van de methode. |
...#437,#457+123... |
Als de eerste uitvoerbare eenheid in een methode meer dan negen regels na de laatste uitvoerbare eenheid in de vorige methode begint, bestaat het patroon uit een komma, een getalsaanduiding en de tekenreeks met het regelnummer van de eerste uitvoerbare eenheid in de nieuwe methode. In dit gedeeltelijke voorbeeld begint de eerste uitvoerbare eenheid in de nieuwe methode 20 regels na de laatste uitvoerbare eenheid in de vorige methode. |
...#437,+2... |
Het is mogelijk dat de laatste uitvoerbare eenheid in de methode een notatie met "#" vereist en dat eerste uitvoerbare eenheid in de volgende methode niet te veel regels verwijderd is. In dit gedeeltelijke voorbeeld begint de laatste uitvoerbare eenheid in een methode op regel 437 en de eerste uitvoerbare eenheid in de volgende methode op regel 439. |