Événements ETW de chargeur
Ces événements collectent des informations relatives au chargement et déchargement des domaines d'application, des assemblys et des modules.
Tous les événements de chargeur sont déclenchés sous le mot clé LoaderKeyword
(0x8). Les événements DCStart
et DCEnd
sont déclenchés sous LoaderRundownKeyword
(0x8) avec StartRundown
/EndRundown
activé. (Pour plus d'informations, consultez CLR ETW Keywords and Levels.)
Événements de domaine d'application
Le tableau suivant montre les mots clés et les niveaux.
Mot clé pour déclencher l'événement | Événement | Level |
---|---|---|
LoaderKeyword (0x8) |
AppDomainLoad_V1 et AppDomainUnLoad_V1 |
Informatif (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AppDomainDCStart_V1 |
Informatif (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AppDomainDCEnd_V1 |
Informatif (4) |
Le tableau ci-dessous montre les informations liées aux événements.
Événement | ID de l’événement | Description |
---|---|---|
AppDomainLoad_V1 (journalisé pour tous les domaines d'application) |
156 | Déclenché chaque fois qu'un domaine d'application est créé pendant la durée de vie d'un processus. |
AppDomainUnLoad_V1 |
157 | Déclenché chaque fois qu'un domaine d'application est détruit pendant la durée de vie d'un processus. |
AppDomainDCStart_V1 |
157 | Énumère les domaines d'application pendant un arrêt de début. |
AppDomainDCEnd_V1 |
158 | Énumère les domaines d'application pendant un arrêt de fin. |
Le tableau ci-dessous montre les données liées aux événements.
Nom du champ | Type de données | Description |
---|---|---|
AppDomainID | win:UInt64 | Identificateur unique d’un domaine d'application. |
AppDomainFlags | win:UInt32 | 0x1 : domaine par défaut. 0x2 : exécutable. 0x4 : domaine d'application, bit 28-31 : partage de la stratégie de ce domaine. 0 : domaine partagé. |
AppDomainName | win:UnicodeString | Nom convivial du domaine d'application. Peut changer pendant la durée de vie du processus. |
AppDomainIndex | win:UInt32 | Index de ce domaine d'application. |
ClrInstanceID | win:UInt16 | ID unique de l'instance de CLR ou CoreCLR. |
Événements d'assembly de chargeur du CLR
Le tableau suivant montre les mots clés et les niveaux.
Mot clé pour déclencher l'événement | Événement | Level |
---|---|---|
LoaderKeyword (0x8) |
AssemblyLoad et AssemblyUnload |
Informatif (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AssemblyDCStart |
Informatif (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AssemblyDCEnd |
Informatif (4) |
Le tableau ci-dessous montre les informations liées aux événements.
Événement | ID de l’événement | Description |
---|---|---|
AssemblyLoad_V1 |
154 | Déclenché quand un assembly est chargé. |
AssemblyUnload_V1 |
155 | Déclenché quand un assembly est déchargé. |
AssemblyDCStart_V1 |
155 | Énumère les assemblys pendant un arrêt de début. |
AssemblyDCEnd_V1 |
156 | Énumère les assemblys pendant un arrêt de fin. |
Le tableau ci-dessous montre les données liées aux événements.
Nom du champ | Type de données | Description |
---|---|---|
AssemblyID | win:UInt64 | ID unique de l'assembly. |
AppDomainID | win:UInt64 | ID du domaine de cet assembly. |
BindingID | win:UInt64 | ID qui identifie de façon unique la liaison d'assembly. |
AssemblyFlags | win:UInt32 | 0x1 : assembly indépendant du domaine. 0x2 : assembly dynamique. 0x4 : l’assembly possède une image native. 0x8 : assembly pouvant être collecté. |
AssemblyName | win:UnicodeString | Nom qualifié complet de l'assembly. |
ClrInstanceID | win:UInt16 | ID unique de l'instance de CLR ou CoreCLR. |
Événements de module
Le tableau suivant montre les mots clés et les niveaux.
Mot clé pour déclencher l'événement | Événement | Level |
---|---|---|
LoaderKeyword (0x8) |
ModuleLoad_V2 et ModuleUnload_V2 |
Informatif (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
ModuleDCStart_V2 |
Informatif (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
ModuleDCEnd_V2 |
Informatif (4) |
Le tableau ci-dessous montre les informations liées aux événements.
Événement | ID de l’événement | Description |
---|---|---|
ModuleLoad_V2 |
152 | Déclenché quand un module est chargé pendant la durée de vie d'un processus. |
ModuleUnload_V2 |
153 | Déclenché quand un module est déchargé pendant la durée de vie d'un processus. |
ModuleDCStart_V2 |
153 | Énumère les modules pendant un arrêt de début. |
ModuleDCEnd_V2 |
154 | Énumère les modules pendant un arrêt de fin. |
Le tableau ci-dessous montre les données liées aux événements.
Nom du champ | Type de données | Description |
---|---|---|
ModuleID | win:UInt64 | ID unique du module. |
AssemblyID | win:UInt64 | ID de l'assembly dans lequel ce module réside. |
ModuleFlags | win:UInt32 | 0x1 : module indépendant du domaine. 0x2 : le module possède une image native. 0x4 : module dynamique. 0x8 : module de manifeste. |
Reserved1 | win:UInt32 | Champ réservé. |
ModuleILPath | win:UnicodeString | Chemin d’accès de l’image CIL (Common Intermediate Language) du module ou du nom du module dynamique s’il s’agit d’un assembly dynamique (terminé par null). |
ModuleNativePath | win:UnicodeString | Chemin d'accès de l'image native du module, si elle est présente (se terminant par null). |
ClrInstanceID | win:UInt16 | ID unique de l'instance de CLR ou CoreCLR. |
ManagedPdbSignature | win:GUID | Signature GUID de la base de données du programme géré (PDB) qui correspond à ce module. (Consultez la section Notes.) |
ManagedPdbAge | win:UInt32 | Nombre relatif à l’âge écrit sur le fichier PDB managé qui correspond à ce module. (Consultez la section Notes.) |
ManagedPdbBuildPath | win:UnicodeString | Chemin d'accès à l'emplacement où le fichier PDB managé qui correspond à ce module a été créé. Dans certains cas, cela peut simplement être un nom de fichier. (Consultez la section Notes.) |
NativePdbSignature | win:GUID | Signature GUID du fichier PDB de Native Image Generator (NGen) correspondant à ce module, le cas échéant. (Consultez la section Notes.) |
NativePdbAge | win:UInt32 | Nombre relatif à l’âge écrit dans le fichier PDB NGen qui correspond à ce module, le cas échéant. (Consultez la section Notes.) |
NativePdbBuildPath | win:UnicodeString | Chemin d'accès à l'emplacement où le fichier PDB NGen qui correspond à ce module a été créé, le cas échéant. Dans certains cas, cela peut simplement être un nom de fichier. (Consultez la section Notes.) |
Notes
Les champs dont le nom contient « Pdb » peuvent être utilisés par les outils de profilage pour localiser les fichiers PDB qui correspondent aux modules qui ont été chargés au cours de la session de profilage. Les valeurs de ces champs correspondent aux données écrites dans les sections IMAGE_DIRECTORY_ENTRY_DEBUG du module normalement utilisé par les débogueurs pour favoriser la localisation des fichiers PDB qui correspondent aux modules chargés.
Les noms de champs commençant par « ManagedPdb » font référence à la base de données PDB managée correspondant au module CIL généré par le compilateur managé (par exemple, le compilateur C# ou Visual Basic). Cette base de données PDB utilise le format PDB managé et décrit comment les éléments du code source managé d’origine, tels que les fichiers, les numéros de ligne et les noms de symboles, sont mappés aux éléments CIL compilés dans le module CIL.
Les noms de champs qui commencent par « NativePdb » font référence au fichier PDB NGen généré par l'appel à
NGEN createPDB
. Ce fichier PDB utilise le format de fichier PDB natif et décrit comment les éléments issus du code source managé d'origine, tels que les fichiers, les numéros de lignes et les noms de symboles sont mappés aux éléments natifs qui sont compilés dans le module NGen.
Événements de module de domaine du CLR
Le tableau suivant montre les mots clés et les niveaux.
Mot clé pour déclencher l'événement | Événement | Level |
---|---|---|
LoaderKeyword (0x8) |
DomainModuleLoad_V1 |
Informatif (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
DomainModuleDCStart_V1 |
Informatif (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
DomainModuleDCEnd_V1 |
Informatif (4) |
Le tableau ci-dessous montre les informations liées aux événements.
Événement | ID de l’événement | Description |
---|---|---|
DomainModuleLoad_V1 |
151 | Déclenché quand un module est chargé pour un domaine d'application. |
DomainModuleDCStart_V1 |
151 | Énumère les modules chargés pour un domaine d'application pendant un arrêt de début, et est consigné pour tous les domaines d'application. |
DomainModuleDCEnd_V1 |
152 | Énumère les modules chargés pour un domaine d'application pendant un arrêt de fin, et est consigné pour tous les domaines d'application. |
Le tableau ci-dessous montre les données liées aux événements.
Nom du champ | Type de données | Description |
---|---|---|
ModuleID | win:UInt64 | Identifie l'assembly auquel ce module appartient. |
AssemblyID | win:UInt64 | ID de l'assembly dans lequel ce module réside. |
AppDomainID | win:UInt64 | ID du domaine d'application dans lequel ce module est utilisé. |
ModuleFlags | win:UInt32 | 0x1 : module indépendant du domaine. 0x2 : le module possède une image native. 0x4 : module dynamique. 0x8 : module de manifeste. |
Reserved1 | win:UInt32 | Champ réservé. |
ModuleILPath | win:UnicodeString | Chemin d’accès de l’image CIL pour le module, ou nom du module dynamique s’il s’agit d’un assembly dynamique (terminé par null). |
ModuleNativePath | win:UnicodeString | Chemin d'accès de l'image native du module, si elle est présente (se terminant par null). |
ClrInstanceID | win:UInt16 | ID unique de l'instance de CLR ou CoreCLR. |
Événements de plage de module
Le tableau suivant montre les mots clés et les niveaux.
Mot clé pour déclencher l'événement | Événement | Level |
---|---|---|
PerfTrackKeyWord ) |
ModuleRange |
Informatif (4) |
PerfTrackKeyWord |
ModuleRangeDCStart |
Informatif (4) |
PerfTrackKeyWord |
ModuleRangeDCEnd |
Informatif (4) |
Le tableau ci-dessous montre les informations liées aux événements.
Événement | ID de l’événement | Description |
---|---|---|
ModuleRange |
158 | Cet événement est présent si une image Native Image Generator (NGen) chargée a été optimisée à l’aide d’IBC et contient des informations sur les sections à chaud de l'image NGen. |
ModuleRangeDCStart |
160 | Événement ModuleRange déclenché au début d'un arrêt. |
ModuleRangeDCEnd |
161 | Événement ModuleRange déclenché à la fin d'un arrêt. |
Le tableau ci-dessous montre les données liées aux événements.
Nom du champ | Type de données | Description |
---|---|---|
ClrInstanceID | win:UInt16 | Identifie de façon unique une instance spécifique du CLR dans un processus si plusieurs instances du CLR sont chargées. |
ModuleID | win:UInt64 | Identifie l'assembly auquel ce module appartient. |
RangeBegin | win:UInt32 | Le décalage dans le module qui représente le début de la plage du type de plage spécifié. |
RangeSize | win:UInt32 | Taille de la plage spécifiée en octets. |
RangeType | win:UInt32 | Valeur unique, 0x4, représentant des plages IBC froides. Ce champ pourra représenter des valeurs supplémentaires dans le futur. |
RangeSize1 | win:UInt32 | 0 indique des données incorrectes. |
RangeBegin2 | win:UnicodeString |
Notes
Si une image NGen chargée dans un processus du .NET Framework a été optimisée à l’aide d’IBC, l’événement ModuleRange
qui contient les plages à chaud dans l'image NGen est consigné avec ses moduleID
et ClrInstanceID
. Si l'image NGen n'est pas optimisée à l’aide d’IBC, cet événement n'est pas consigné. Pour déterminer le nom du module, cet événement doit être assemblé avec les événements ETW de chargement de module.
La taille de charge utile pour cet événement est variable. Le champ Count
indique le nombre de décalages de plages contenus dans cet événement. Cet événement doit être assemblé avec l’événement IStart
de Windows afin de déterminer les plages réelles. L'événement de chargement d'image Windows est consigné chaque fois qu'une image est chargée, et il contient l'adresse virtuelle de l'image chargée.
Les événements de plage de module sont déclenchés sous n'importe quel niveau ETW supérieur ou égal à 4 et sont classés en tant qu'événements d'information.