Determinazione dell'ID del punto di traccia di un punto di traccia
In tutto il codice che compone l' JVM, sono presenti numerosi tracepoint. Ogni punto di analisi si associa a un ID univoco costituito dal nome del componente che contiene il punto di analisi, seguito da un punto (.) e quindi dall'identificativo numerico del punto di analisi.
Questi punti di traccia vengono registrati anche in un file .dat (J9TraceFormat.dat) fornito con l'ambiente di runtime Java™ e il programma di formattazione della traccia utilizza questo file per convertire i punti di traccia compressi in formato leggibile.
JVM Gli sviluppatori e il servizio possono utilizzare i .dat file per consentire la formulazione di ID e intervalli dei punti di tracciamento da utilizzare durante -Xtrace la ricerca dei problemi. L'esempio successivo viene preso dall'inizio di J9TraceFormat.dat, che illustra come funziona questo meccanismo:
5.1
j9bcu.0 0 1 1 N Trc_BCU_VMInitStages_Event1 " Trace engine initialized for module j9dyn"
j9bcu.1 2 1 1 N Trc_BCU_internalDefineClass_Entry " >internalDefineClass %p"
j9bcu.2 4 1 1 N Trc_BCU_internalDefineClass_Exit " <internalDefineClass %p ->"
j9bcu.3 2 1 1 N Trc_BCU_createRomClassEndian_Entry " >createRomClassEndian searchFilename=%s"
La prima riga del file .dat è un numero di versione interna. Dopo il numero di versione è una riga per ogni punto di analisi. Il punto di tracciamento j9bcu.0 corrisponde ad esempio a Trc_BCU_VMInitStages_Event1 e j9bcu.2 corrisponde a Trc_BCU_internalDefineClass_Exit.
<component.id> <t> <o> <l> <e> <symbol> <template>dove:- <component.id>
- è il nome del componente SDK.
- < t>
- è il tipo di punto di traccia (da 0 a 12), dove vengono utilizzati questi tipi:
- 0 = evento
- 1 = eccezione
- 2 = voce funzione
- 4 = uscita funzione
- 5 = uscita funzione con eccezione
- 8 = interno
- 12 = asserzione
- < o>
- è l'overhead (da 0 a 10), che determina se il punto di tracciamento viene compilato nel codice runtime dell' JVM.
- < l>
- è il livello del punto di analisi (da 0 a 9). I punti di analisi ad alta frequenza, noti come punti di analisi a caldo, sono assegnati a numeri di livello superiore.
- < e>
- è un indicatore interno (S/N) e non è più utilizzato.
- < simbolo>
- è il nome simbolico interno del punto di traccia.
- < template>
- è un modello racchiuso tra virgolette che viene utilizzato per formattare la voce.
14:10:42.717*0x41508a00 j9bcu.0 - Trace engine initialized for module j9dynL'esempio dato è abbastanza banale. Tuttavia, l'utilizzo degli intervalli tpnid e dei parametri formattati contenuti nella maggior parte delle voci di traccia fornisce un meccanismo di debug dei problemi molto potente.I file .dat contengono un elenco di tutti i punti di analisi ordinati per componente, numerati in sequenza da 0. L'ID completo del punto di traccia è incluso in tutto l'output formattato di un punto di traccia; ad esempio, la traccia sulla console o la traccia binaria formattata.
Il formato delle voci di traccia e il contenuto dei file .dat sono soggetti a modifiche senza preavviso. Tuttavia, il numero di versione deve garantire un formato particolare.