Eventi ETW del caricatore
Questi eventi raccolgono informazioni relative al caricamento e allo scaricamento di domini applicazione, assembly e moduli.
Tutti gli eventi del caricatore vengono generati con la parola chiave LoaderKeyword
(0x8). Gli eventi DCStart
e DCEnd
vengono generati in LoaderRundownKeyword
(0x8) con StartRundown
/EndRundown
abilitato. Per altre informazioni, vedere CLR ETW Keywords and Levels.
Eventi del dominio applicazioni
La tabella seguente illustra la parola chiave e il livello
Parola chiave per la generazione dell'evento | Event | Level |
---|---|---|
LoaderKeyword (0x8) |
AppDomainLoad_V1 e AppDomainUnLoad_V1 |
Informativo (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AppDomainDCStart_V1 |
Informativo (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AppDomainDCEnd_V1 |
Informativo (4) |
La tabella seguente mostra le informazioni sull'evento.
Event | ID evento | Descrizione |
---|---|---|
AppDomainLoad_V1 (registrato per tutti i domini applicazioni) |
156 | Generato se un dominio applicazioni viene creato nel corso di un processo. |
AppDomainUnLoad_V1 |
157 | Generato se un dominio applicazioni viene eliminato nel corso di un processo. |
AppDomainDCStart_V1 |
157 | Enumera i domini applicazioni durante un rundown di avvio. |
AppDomainDCEnd_V1 |
158 | Enumera i domini applicazioni durante un rundown di fine. |
La tabella seguente mostra i dati dell'evento.
Nome campo | Tipo di dati | Descrizione |
---|---|---|
AppDomainID | win:UInt64 | Identificatore univoco per un dominio applicazioni. |
AppDomainFlags | win:UInt32 | 0x1: dominio predefinito. 0x2: eseguibile. 0x4: dominio applicazioni, bit 28-31: condivisione dei criteri di questo dominio. 0: dominio condiviso. |
AppDomainName | win:UnicodeString | Nome descrittivo del dominio applicazioni. Può cambiare nel corso del processo. |
AppDomainIndex | win:UInt32 | Indice di questo dominio applicazioni. |
ClrInstanceID | win:UInt16 | ID univoco per l'istanza di CLR o CoreCLR. |
Eventi assembly del caricatore CLR
La tabella seguente illustra la parola chiave e il livello
Parola chiave per la generazione dell'evento | Event | Level |
---|---|---|
LoaderKeyword (0x8) |
AssemblyLoad e AssemblyUnload |
Informativo (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AssemblyDCStart |
Informativo (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AssemblyDCEnd |
Informativo (4) |
La tabella seguente mostra le informazioni sull'evento.
Event | ID evento | Descrizione |
---|---|---|
AssemblyLoad_V1 |
154 | Generato quando viene caricato un assembly. |
AssemblyUnload_V1 |
155 | Generato quando viene scaricato un assembly. |
AssemblyDCStart_V1 |
155 | Enumera gli assembly durante un rundown di avvio. |
AssemblyDCEnd_V1 |
156 | Enumera gli assembly durante un rundown di fine. |
La tabella seguente mostra i dati dell'evento.
Nome campo | Tipo di dati | Descrizione |
---|---|---|
AssemblyID | win:UInt64 | ID univoco per l'assembly. |
AppDomainID | win:UInt64 | ID del dominio dell'assembly. |
BindingID | win:UInt64 | ID che identifica univocamente l'associazione di assembly. |
AssemblyFlags | win:UInt32 | 0x1: assembly indipendente dal dominio. 0x2: assembly dinamico. 0x4: assembly con immagine nativa. 0x8: assembly ritirabile. |
AssemblyName | win:UnicodeString | Nome completo dell'assembly. |
ClrInstanceID | win:UInt16 | ID univoco per l'istanza di CLR o CoreCLR. |
Eventi modulo
La tabella seguente illustra la parola chiave e il livello
Parola chiave per la generazione dell'evento | Event | Level |
---|---|---|
LoaderKeyword (0x8) |
ModuleLoad_V2 e ModuleUnload_V2 |
Informativo (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
ModuleDCStart_V2 |
Informativo (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
ModuleDCEnd_V2 |
Informativo (4) |
La tabella seguente mostra le informazioni sull'evento.
Event | ID evento | Descrizione |
---|---|---|
ModuleLoad_V2 |
152 | Generato se un modulo viene caricato nel corso di un processo. |
ModuleUnload_V2 |
153 | Generato se un modulo viene scaricato nel corso di un processo. |
ModuleDCStart_V2 |
153 | Enumera i moduli durante un rundown di avvio. |
ModuleDCEnd_V2 |
154 | Enumera i moduli durante un rundown di fine. |
La tabella seguente mostra i dati dell'evento.
Nome campo | Tipo di dati | Descrizione |
---|---|---|
ModuleID | win:UInt64 | ID univoco per il modulo. |
AssemblyID | win:UInt64 | ID dell'assembly in cui si trova il modulo. |
ModuleFlags | win:UInt32 | 0x1: modulo indipendente dal dominio. 0x2: modulo con immagine nativa. 0x4: modulo dinamico. 0x8: modulo del manifesto. |
Reserved1 | win:UInt32 | Campo riservato. |
ModuleILPath | win:UnicodeString | Percorso dell'immagine CIL (Common Intermediate Language) per il modulo o nome di modulo dinamico se si tratta di un assembly dinamico (con terminazione Null). |
ModuleNativePath | win:UnicodeString | Percorso dell'immagine nativa del modulo, se presente (con terminazione null). |
ClrInstanceID | win:UInt16 | ID univoco per l'istanza di CLR o CoreCLR. |
ManagedPdbSignature | win:GUID | Firma GUID del database del programma gestito (PDB) che corrisponde al modulo. (Vedere Note). |
ManagedPdbAge | win:UInt32 | Numero della durata scritto nel PDB gestito che corrisponde al modulo. (Vedere Note). |
ManagedPdbBuildPath | win:UnicodeString | Percorso alla posizione in cui è stato compilato il PDB gestito che corrisponde al modulo. In alcuni casi, può essere semplicemente un nome file. (Vedere Note). |
NativePdbSignature | win:GUID | Firma GUID del file PDB del generatore di immagini native (NGen) che corrisponde al modulo, se applicabile. (Vedere Note). |
NativePdbAge | win:UInt32 | Numero della durata scritto nel PDB di NGen che corrisponde al modulo, se applicabile. (Vedere Note). |
NativePdbBuildPath | win:UnicodeString | Percorso alla posizione in cui è stato compilato il PDB di NGen che corrisponde al modulo, se applicabile. In alcuni casi, può essere semplicemente un nome file. (Vedere Note). |
Osservazioni:
I campi che contengono "Pdb" nel nome possono essere usati dagli strumenti di profilazione per individuare i PDB che corrispondono ai moduli caricati durante la sessione di profilazione. I valori di questi campi corrispondono ai dati scritti nelle sezioni IMAGE_DIRECTORY_ENTRY_DEBUG del modulo normalmente usato dai debugger per individuare i PDB che corrispondono ai moduli caricati.
I nomi dei campi che iniziano con "ManagedPdb" fanno riferimento al PDB gestito corrispondente al modulo CIL generato dal compilatore gestito, ad esempio il compilatore C# o Visual Basic. Questo PDB usa il formato PDB gestito e descrive come gli elementi del codice sorgente gestito originale, ad esempio file, numeri di riga e nomi di simboli, eseguono il mapping agli elementi CIL compilati nel modulo CIL.
I nomi dei campi che iniziano con "NativePdb" fanno riferimento al PDB di NGen generato chiamando
NGEN createPDB
. Questo PDB usa il formato PDB nativo e descrive in che modo gli elementi del codice sorgente gestito originale, ad esempio file, numeri di riga e nomi di simboli, eseguono il mapping agli elementi nativi compilati nel modulo NGen.
Eventi modulo del dominio CLR
La tabella seguente illustra la parola chiave e il livello
Parola chiave per la generazione dell'evento | Event | Level |
---|---|---|
LoaderKeyword (0x8) |
DomainModuleLoad_V1 |
Informativo (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
DomainModuleDCStart_V1 |
Informativo (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
DomainModuleDCEnd_V1 |
Informativo (4) |
La tabella seguente mostra le informazioni sull'evento.
Event | ID evento | Descrizione |
---|---|---|
DomainModuleLoad_V1 |
151 | Generato quando un modulo viene caricato per un dominio applicazioni. |
DomainModuleDCStart_V1 |
151 | Enumera i moduli caricati per un dominio applicazioni durante un rundown di avvio e viene registrato per tutti i domini applicazioni. |
DomainModuleDCEnd_V1 |
152 | Enumera i moduli caricati per un dominio applicazioni durante un rundown di fine e viene registrato per tutti i domini applicazioni. |
La tabella seguente mostra i dati dell'evento.
Nome campo | Tipo di dati | Descrizione |
---|---|---|
ModuleID | win:UInt64 | Identifica l'assembly al quale appartiene il modulo. |
AssemblyID | win:UInt64 | ID dell'assembly in cui si trova il modulo. |
AppDomainID | win:UInt64 | ID del dominio applicazioni in cui viene usato il modulo. |
ModuleFlags | win:UInt32 | 0x1: modulo indipendente dal dominio. 0x2: modulo con immagine nativa. 0x4: modulo dinamico. 0x8: modulo del manifesto. |
Reserved1 | win:UInt32 | Campo riservato. |
ModuleILPath | win:UnicodeString | Percorso dell'immagine CIL per il modulo o nome del modulo dinamico se si tratta di un assembly dinamico (con terminazione Null). |
ModuleNativePath | win:UnicodeString | Percorso dell'immagine nativa del modulo, se presente (con terminazione null). |
ClrInstanceID | win:UInt16 | ID univoco per l'istanza di CLR o CoreCLR. |
Eventi di intervallo modulo
La tabella seguente illustra la parola chiave e il livello
Parola chiave per la generazione dell'evento | Event | Level |
---|---|---|
PerfTrackKeyWord ) |
ModuleRange |
Informativo (4) |
PerfTrackKeyWord |
ModuleRangeDCStart |
Informativo (4) |
PerfTrackKeyWord |
ModuleRangeDCEnd |
Informativo (4) |
La tabella seguente mostra le informazioni sull'evento.
Event | ID evento | Descrizione |
---|---|---|
ModuleRange |
158 | Questo evento è presente se un'immagine del generatore di immagini native (NGen) è stata ottimizzata con IBC e contiene informazioni sulle sezioni critiche dell'immagine NGen. |
ModuleRangeDCStart |
160 | Evento ModuleRange generato all'avvio di un rundown. |
ModuleRangeDCEnd |
161 | Evento ModuleRange generato alla fine di un rundown. |
La tabella seguente mostra i dati dell'evento.
Nome campo | Tipo di dati | Descrizione |
---|---|---|
ClrInstanceID | win:UInt16 | Identifica in modo univoco un'istanza specifica di CLR in un processo se vengono caricate più istanze di CLR. |
ModuleID | win:UInt64 | Identifica l'assembly al quale appartiene il modulo. |
RangeBegin | win:UInt32 | Offset nel modulo che rappresenta l'inizio dell'intervallo per il tipo di intervallo specificato. |
RangeSize | win:UInt32 | Dimensione dell'intervallo specificato in byte. |
RangeType | win:UInt32 | Valore singolo, 0x4, che rappresenta gli intervalli IBC a freddo. In futuro, questo campo potrebbe rappresentare più valori. |
RangeSize1 | win:UInt32 | 0 indica dati non validi. |
RangeBegin2 | win:UnicodeString |
Osservazioni:
Se un'immagine NGen caricata in un processo di .NET Framework è stata ottimizzata con IBC, l'evento ModuleRange
che contiene gli intervalli critici nell'immagine NGen viene registrato insieme a moduleID
e ClrInstanceID
. Se l'immagine NGen non è ottimizzata con IBC, l'evento non viene registrato. Per determinare il nome del modulo, questo evento deve essere collazionato con gli eventi ETW di caricamento del modulo.
Le dimensioni del payload per questo evento sono variabili. Il campo Count
indica il numero di offset dell'intervallo contenuti nell'evento. L'evento deve essere collazionato con l'evento IStart
di Windows per determinare gli intervalli effettivi. L'evento di caricamento dell'immagine di Windows viene registrato quando viene caricata un'immagine e contiene l'indirizzo virtuale dell'immagine caricata.
Gli eventi di intervallo form vengono generati in un qualsiasi livello ETW maggiore o uguale a 4 e vengono classificati come eventi informativi.