Värdet på varje post i methodLineTables-tabellen är radnumret (i källfilen som anges av datasträngen classSourceFile) för respektive körbar enhet. Exempelvis ger postnummer fem i tabellen radnumret för den körbara enheten nummer fem.
Här visas ett exempel på strängen methodLineTables:
#51+1201#75+11,41
Så här tolkar du strängen:
- Siffrorna omedelbart efter nummertecknet ("#") representerar ett fullständigt radnummer i källkoden för en klass. I exemplet är den första körbara enheten för den första metoden i klassen på rad 51.
- Varje siffra som följer efter ett plustecken ("+") representerar antalet rader som ska läggas till det föregående radnumret för att ge radnumret för nästa körbara enhet. I exemplet används siffrorna som följer efter plustecknet (+1201) till att beräkna radnumren för den andra till den femte körbara enheten:
- 51 + 1 = radnumret för den andra körbara enheten: 52
- 52 + 2 = radnumret för den tredje körbara enheten: 54
- 54 + 0 = radnumret för den fjärde körbara enheten: 54 (två körbara enheter på en källrad)
- 54 + 1 = radnumret för den femte körbara enheten: 55
- När ett radnummersteg är negativt eller större än nio anges det fullständiga radnumret för den körbara enheten. I exemplet är den sjätte körbara enheten på rad 75 tjugo nummer större än det föregående radnumret som är 55. I det här fallet anges det fullständiga radnumret för den sjätte körbara enheten och den relativa radnummerberäkningen börjar igen (#75+11):
- 75 = radnumret för den sjätte körbara enheten
- 75 + 1 = radnumret för den sjunde körbara enheten: 76
- 76 + 1 = radnumret för den åttonde körbara enheten: 77
- Ett kommatecken (",") markerar slutet på en metod och början på nästa.
Siffrorna och symbolerna som följer på kommatecknet tolkas som tidigare. I exemplet är radnumret för den andra metodens första körbara enhet 4 större än det sista radnumret som beräknades för den föregående metoden, så den relativa radnummerberäkningen fortsätter efter kommatecknet (,41):
- 77 + 4 = radnumret för den andra metodens första körbara enhet: 81
- 81 + 1 = radnumret för den andra metodens andra körbara enhet: 82
Obs! Alla körbara enheter har inte källinformation kopplad till sig. Vissa skapas av kompileraren för att implementera Java-språkets semantik: exempelvis undantagshantering, initiering och synkronisering. Sådana genererade körbara enheter har noll som fullständigt radnummer i methodLineTables-strängen. Det fullständiga radnumret noll anger att det inte finns någon radinformation tillgänglig. När en hel metod inte har någon källinformation visas den som en enda körbar enhet med radnumret noll.
Här följer några exempel på methodLineTables-strängar och deras betydelse:
methodLineTables-sträng |
Betydelse |
+5 |
Om radnumret för den första körbara enheten för den första metoden är mindre än tio börjar hela strängen med ett plustecken för att börja en stegserie från rad noll. I det här exemplet börjar den första metodens första körbara enhet på rad 5. |
+0 |
Om det inte finns någon källinformation för den första metoden börjar strängen med +0. Eventuella executableUnit-probfragment som används på en sådan metod infogas endast en gång, i början av metoden. |
...#437,#457+123... |
Om den första körbara enheten för en metod börjar mer än nio rader efter den sista körbara enheten för den föregående metoden är mönstret ett kommatecken, nummertecken och radnummersträngen för den första körbara enheten i den nya metoden. I det här delexemplet börjar den första körbara enheten i den nya metoden 20 rader efter den föregående metodens sista körbara enhet. |
...#437,+2... |
Det är möjligt att den sista körbara enheten i en metod kräver tecknet "#" och att den första körbara enheten i nästa metod är en bit bort. I det här delexemplet börjar den sista körbara enheten i en metod på rad 437 och den första körbara enheten för nästa metod börjar på rad 439. |