Il valore di ciascuna voce nella tabella methodLineTables è il numero di riga
(nel file di origine il cui nome si basa sulla stringa dati classSourceFile) dell'unità eseguibile corrispondente. Ad esempio, il numero di immissione cinque nella tabella indica che il numero della riga dell'unità eseguibile è cinque.
Segue un esempio di stringa methodLineTables:
#51+1201#75+11,41
Ecco come interpretare la stringa:
- Le cifre che vengono subito dopo il segno ("#")
rappresentano un numero di riga intero all'interno del codice di origine per una classe. Nell'esempio,
la prima unità eseguibile nel primo metodo all'interno della classe si trova alla
riga 51.
- Ogni singola cifra che si trova dopo un segno più ("+") rappresenta
il numero di righe da aggiungere al numero di riga precedente per produrre il numero di
riga per la successiva unità eseguibile. Nell'esempio, le cifre che seguono
il segno più (+1201) vengono utilizzate per calcolare i numeri
di riga per la seconda, la terza, la quarta e la quinta unità eseguibile:
- 51 + 1 = il numero di riga della seconda unità eseguibile: 52
- 52 + 2 = il numero di riga della terza unità eseguibile: 54
- 54 + 0 = il numero di riga della quarta unità eseguibile: 54 (due unità
eseguibili su una riga di codice)
- 54 + 1 = il numero di riga della quinta unità eseguibile: 55
- Quando l'incremento del numero di riga è negativo o maggiore di nove, viene specificato il numero di riga completo dell'unità eseguibile. In
questo esempio, la sesta unità eseguibile si trova alla riga 75, con una differenza
di 20 numeri dal precedente numero di riga, il 55. In questo caso, per la sesta unità
eseguibile viene specificato il numero di riga completo e comincia di nuovo il calcolo
relativo del numero di riga (#75+11):
- 75 = il numero di riga della sesta unità eseguibile
- 75 + 1 = il numero di riga della settima unità eseguibile: 76
- 76 + 1 = il numero di riga dell'ottava unità eseguibile: 77
- Una virgola (",") indica la fine di un metodo e l'inizio del
metodo successivo.
Le cifre e i simboli che seguono la virgola vengono interpretati
come precedentemente illustrato. Nell'esempio, il numero di riga della prima unità eseguibile del
secondo metodo è solo 4 numeri maggiore dell'ultimo numero di riga calcolato per il metodo precedente la differenza è
metodo precedente; pertanto, il calcolo dei numeri di riga relativo continua
dopo la virgola (,41):
- 77 + 4 = il numero di riga della prima unità eseguibile del secondo metodo:
81
- 81 + 1 = il numero di riga della seconda unità eseguibile del secondo metodo:
82
Nota: non tutte le unità eseguibili dispongono
di informazioni di origine associate. Alcune vengono create dal compilatore
per implementare la semantica del linguaggio Java: ad esempio
eccezione, gestione, inizializzazione o sincronizzazione. Queste
unità eseguibili generate presentano un numero di riga completo pari a zero
nella stringa methodLineTables. Un numero di riga completo pari a zero indica
che non sono disponibili informazioni sui numeri di riga. Quando un intero metodo
non dispone di informazioni di origine, sembra contenere una singola
unità eseguibile corrispondente al numero di riga zero.
Seguono ulteriori esempi
di stringhe methodLineTables, con relativa descrizione:
Stringa methodLineTables |
Descrizione |
+5 |
Se il numero di riga della prima unità eseguibile del
primo metodo è minore di 10, l'intera stringa inizia con
un segno più per dare inizio a una serie di incrementi dalla riga zero. In
questo esempio, la prima unità eseguibile del primo metodo inizia
alla riga 5. |
+0 |
Se il primo metodo non dispone di informazioni
di origine, la stringa comincia con +0. Tutti i frammenti probe executableUnit
che si applicano a un metodo come questo, verranno inseriti una sola volta
all'inizio del metodo. |
...#437,#457+123... |
Se la prima unità eseguibile di metodo inizia
più di nove righe dopo l'ultima unità eseguibile del metodo precedente, il
modello prevede una virgola, un segno numerico e la stringa del numero di riga
per la prima unità eseguibile del nuovo metodo. In questo esempio
parziale, la prima unità eseguibile nel nuovo metodo inizia 20 righe
dopo l'ultima unità eseguibile del metodo precedente. |
...#437,+2... |
È possibile che l'ultima unità eseguibile di un
metodo richieda la notazione "#" e che la prima unità eseguibile del metodo
successivo sia abbastanza vicina. In questo esempio parziale,
l'ultima unità eseguibile di un metodo inizia alla riga 437, mentre
la prima unità eseguibile del metodo successivo inizia alla riga
439. |