methodLineTables-taulukon kunkin merkinnän arvo on
vastaavan toteutettavan yksikön rivinumero (classSourceFile-tietomerkkijonon nimeämässä
lähdetiedostossa). Esimerkiksi taulukon merkintä numero viisi antaa
rivinumeron toteutettavalle yksikölle numero viisi.
Seuraavassa on esimerkki methodLineTables-merkkijonosta:
#51+1201#75+11,41
Seuraavassa on merkkijonon tulkinta:
- Numeromerkkiä (#) välittömästi seuraavat numerot kuvaavat kokonaista
rivinumeroa luokan lähdekoodissa. Esimerkissä luokan ensimmäisen metodin ensimmäinen
toteutettava yksikkö on rivillä 51.
- Kukin plusmerkkiä (+) seuraava yksittäinen numero kuvaa rivien määrää, joka
lisätään edelliseen rivinumeroon, jolloin tuloksena on seuraavan toteutettavan yksikön
rivinumero. Esimerkissä plusmerkkiä seuraavien numeroiden (+1201)
avulla lasketaan rivinumerot toteutettaville yksiköille
2 - 15:
- 51 + 1 = toisen toteutettavan yksikön rivinumero: 52
- 52 + 2 = kolmannen toteutettavan yksikön rivinumero: 54
- 54 + 0 = neljännen toteutettavan yksikön rivinumero: 54 (kaksi toteutettavaa
yksikköä samalla lähderivillä)
- 54 + 1 = viidennen toteutettavan yksikön rivinumero: 55
- Kun rivinumeron lisäys on negatiivinen tai suurempi kuin yhdeksän, toteutettavan yksikön koko rivinumero määritetään. Esimerkissä kuudes toteutettava
yksikkö on rivillä 75, kaksikymmentä riviä edempänä edellistä numeroa,
joka on 55. Tässä tapauksessa kuudennelle toteutettavalle yksikölle määritetään koko rivinumero.
Sen jälkeen suhteellinen rivinumeron laskenta alkaa jälleen
(#75+11):
- 75 = kuudennen toteutettavan yksikön rivinumero
- 75 + 1 = seitsemännen toteutettavan yksikön rivinumero: 76
- 76 + 1 = kahdeksannen toteutettavan yksikön rivinumero: 77
- Pilkku (,) merkitsee yhden metodin loppua ja seuraavan alkua.
Pilkkua seuraavat numerot ja symbolit tulkitaan samoin kuin edellä. Esimerkissä toisen metodin ensimmäisen
toteutettavan yksikön rivinumero on vain neljä suurempi kuin edellisen metodin viimeinen rivinumero, joten suhteellinen rivinumerolaskenta jatkuu pilkun jälkeen (,41):
- 77 + 4 = toisen metodin ensimmäisen toteutettavan yksikön rivinumero: 81
- 81 + 1 = toisen metodin toisen toteutettavan yksikön rivinumero: 82
Huomautus: Kaikilla toteutettavilla yksiköillä ei ole niihin liittyviä lähdetietoja. Jotkin ovat kääntäjän luomia Java-kielen semantiikan toteutusta varten: esimerkiksi poikkeusten käsittelyä, alustusta tai synkronointia varten. Näiden muodostettujen toteutettavien yksiköiden koko rivinumero on nolla methodLineTables-merkkijonossa. Koko rivinumero nolla tarkoittaa, että rivinumerotietoja
ei ole käytettävissä. Jos metodissa ei ole lainkaan lähdetietoja, siinä näkyy yksi toteutettava yksikkö,
jonka rivinumero on nolla.
Seuraavassa on lisää esimerkkejä methodLineTables-merkkijonoista ja niiden merkityksestä:
methodLineTables-merkkijono |
Merkitys |
+5 |
Jos ensimmäisen metodin ensimmäisen toteutettavan yksikön rivinumero on pienempi kuin kymmenen, koko merkkijono aloitetaan plusmerkillä, jotta lisäyssarja alkaa riviltä nolla. Tässä esimerkissä ensimmäisen metodin ensimmäinen toteutettava yksikkö alkaa riviltä 5. |
+0 |
Jos ensimmäisessä metodissa ei ole lähdetietoja, merkkijono alkaa merkeillä +0. Kaikki tällaiseen metodiin käytettävät executableUnit-luotausfragmentit lisätään vain kerran, metodin alkuun. |
...#437,#457+123... |
Jos metodin ensimmäinen toteutettava yksikkö alkaa
yli yhdeksän riviä edellisen metodin viimeisen toteutettavan yksikön jälkeen, merkkijono on pilkku, numeromerkki
(#-merkki) ja uuden metodin ensimmäisen toteutettavan yksikön rivinumero. Tässä osittaisessa
esimerkissä uuden metodin ensimmäinen toteutettava yksikkö alkaa 20 riviä edellisen metodin viimeisen
toteutettavan yksikön jälkeen. |
...#437,+2... |
Metodin viimeinen toteutettava yksikkö saattaa edellyttää
#-merkkiä, ja seuraavan metodin ensimmäinen toteutettava yksikkö on hyvin lähellä. Tässä osittaisessa esimerkissä
yhden metodin viimeinen toteutettava yksikkö alkaa riviltä 437 ja seuraavan metodin ensimmäinen toteuttava yksikkö
alkaa riviltä 439. |