Détermination de l'ID d'un point de trace

Le code qui constitue la JVM contient de nombreux points de trace. Chaque point de trace est associé à un ID unique constitué du nom du composant contenant le point de trace, suivi d'un point (.) et de l'identificateur numérique du point de trace.

Ces points de trace sont également enregistrés dans deux fichiers .dat (TraceFormat.dat et J9TraceFormat.dat) qui sont fournis avec l'environnement d'exécution Java™ , et le formateur de trace utilise ces fichiers pour convertir les points de trace compressés dans un format lisible.

Les développeurs et le service de la JVM peuvent utiliser les fichiers .dat pour activer la formulation des ID et des plages de points de trace à utiliser sous -Xtrace lors du suivi des incidents. L'exemple suivant est issue du début de J9TraceFormat.dat, ce qui illustre le fonctionnement de ce mécanisme :

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 première ligne du fichier .dat est un numéro de version interne. Le numéro de version est suivi d'une ligne pour chaque point de trace. Le point de trace j9bcu.0 est associé à Trc_BCU_VMInitStages_Event1, par exemple, et j9bcu.2 à Trc_BCU_internalDefineClass_Exit.

Le format de chaque point de trace est :
<component.id> <t> <o> <l> <e> <symbol> <template>
où :
<component.id>
Nom du composant SDK.
<t>
Type de point de trace (0 à 12), où les types suivants sont utilisés :
  • 0 = event
  • 1 = exception
  • 2 = function entry
  • 4 = function exit
  • 5 = function exit with exception
  • 8 = internal
  • 12 = assert
<o>
Temps système (0 à 10) qui détermine si le point de trace est compilé dans le code JVM d'exécution.
<l>
Niveau du point de trace (0 à 9). Les points de trace très fréquents ont des niveaux élevés.
<e>
Indicateur interne (Y/N) qui n'est plus utilisé.
<symbol>
Nom symbolique interne du point de trace.
<template>
Modèle entre guillemets doubles utilisé pour formater l'entrée.
Par exemple, si vous découvrez qu'un incident s'est produit quelque part près du problème de Trc_BCU_VMInitStages_Event, vous pouvez réexécuter l'application avec -Xtrace:print=tpnid{j9bcu.0}. La commande génère une sortie similaire à :
14:10:42.717*0x41508a00   j9bcu.0        - Trace engine initialized for module j9dyn
L'exemple est plutôt simple. Toutefois, l'utilisation de plages tpnid et des paramètres formatés contenus dans la plupart des entrées de trace fournissent un mécanisme de débogage très puissant.

Les fichiers .dat contiennent la liste de tous les points de trace ordonnés par composant, puis numérotés à partir de 0. L'ID de point de trace complet est inclus dans toutes les sorties formatées d'un point de trace ; par exemple, le traçage vers la console ou la trace binaire formatée.

Le format des entrées de trace et le contenu des fichiers .dat peuvent être modifiés sans avis. Toutefois, le numéro de version doit garantir un format particulier.