Formato stringa dati methodLineTables

La stringa di dati methodLineTables codifica una tabella con una voce per ogni singola unità eseguibile di una classe.

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:
    1. 51 + 1 = il numero di riga della seconda unità eseguibile: 52
    2. 52 + 2 = il numero di riga della terza unità eseguibile: 54
    3. 54 + 0 = il numero di riga della quarta unità eseguibile: 54 (due unità eseguibili su una riga di codice)
    4. 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):
    1. 75 = il numero di riga della sesta unità eseguibile
    2. 75 + 1 = il numero di riga della settima unità eseguibile: 76
    3. 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):
    1. 77 + 4 = il numero di riga della prima unità eseguibile del secondo metodo: 81
    2. 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.
Riferimenti correlati
Frammenti probe