Parole chiave e livelli ETW di CLR
Gli eventi Event Tracing for Windows (ETW) possono essere filtrati in base a categoria e livello. Le Parole chiave ETW di CLR degli eventi permettono di filtrare gli eventi per categoria e vengono usate in diverse combinazioni per i provider di runtime e rundown. I livelli evento vengono identificati da flag.
Parole chiave ETW di CLR
Le parole chiave sono flag che possono essere combinati per generare valori. In pratica, è possibile usare i valori esadecimali delle parole chiave invece dei nomi delle parole chiave quando si chiamano le utilità della riga di comando.
Le parole chiave vengono descritte nelle tabelle seguenti.
Combinazioni di parole chiave per la risoluzione dei simboli per il provider di runtime
Combinazioni di parole chiave per la risoluzione dei simboli per il provider di rundown
Parole chiave di runtime ETW di CLR
La tabella seguente contiene le parole chiave di runtime ETW di CLR, i rispettivi valori e informazioni sullo scopo per cui vengono usate.
Nome parola chiave di runtime | valore | Scopo |
---|---|---|
GCKeyword |
0x00000001 | Consente la raccolta di eventi di Garbage Collection. |
LoaderKeyword |
0x00000008 | Consente la raccolta di eventi del caricatore. |
JITKeyword |
0x00000010 | Consente la raccolta di eventi JIT (Just-In-Time). |
NGenKeyword |
0x00000020 | Consente la raccolta di eventi per metodi delle immagini native (metodi elaborati dal generatore di immagini native, Ngen.exe). Viene usata con StartEnumerationKeyword e EndEnumerationKeyword . Questa parola chiave ha un overhead elevato. Genera eventi per ogni metodo incluso in ogni modulo NGen caricato. Se possibile, invece di usare questa parola chiave è consigliabile usare database di programma (PDB) generati da strumenti di profilatura che recuperano informazioni sui metodi dai moduli NGen. Vedere anche OverrideAndSuppressNGenEventsKeyword più avanti in questa tabella. |
StartEnumerationKeyword |
0x00000040 | Consente l'enumerazione di tutti i metodi nel runtime. Viene usata in combinazione con NGenKeyword . |
EndEnumerationKeyword |
0x00000080 | Consente l'enumerazione di tutti i metodi eliminati nel runtime. Viene usata in combinazione con JITKeyword e NGenKeyword . |
SecurityKeyword |
0x00000400 | Consente la raccolta di eventi di sicurezza. |
AppDomainResourceManagementKeyword |
0x00000800 | Consente la raccolta di eventi di monitoraggio delle risorse a livello di dominio applicazione. |
JITTracingKeyword |
0x00001000 | Consente la raccolta di eventi di traccia JIT. |
InteropKeyword |
0x00002000 | Consente la raccolta di eventi di interoperabilità. |
ContentionKeyword |
0x00004000 | Consente la raccolta di eventi di conflitto. |
ExceptionKeyword |
0x00008000 | Consente la raccolta di eventi di eccezione. |
ThreadingKeyword |
0x00010000 | Consente la raccolta di eventi del pool di thread. |
OverrideAndSuppressNGenEventsKeyword |
0x00040000 | Disponibile in .NET Framework 4.5 e versioni successive. Elimina la parola chiave high-overhead NGenKeyword e impedisce la generazione di eventi per i metodi che si trovano all'interno di moduli NGen. A partire da .NET Framework 4.5, gli strumenti di profilatura devono usare OverrideAndSuppressNGenEventsKeyword e NGenKeyword insieme per eliminare la generazione di eventi per i metodi nei moduli NGen. In questo modo, lo strumento di profilatura può usare i più efficienti PDB NGen per ottenere informazioni sui metodi nei moduli NGen. CLR in .NET Framework 4 e versioni precedenti non supporta la creazione di PDB NGen. In queste versioni precedenti CLR non riconosce OverrideAndSuppressNGenEventsKeyword ed elabora NGenKeyword per generare eventi per i metodi nei moduli NGen. |
PerfTrackKeyWord |
0x2000000 | Consente la raccolta di eventi ModuleLoad e ModuleRange . |
StackKeyword |
0x40000000 | Consente la raccolta di eventi di analisi dello stackdi CLR. |
Parole chiave di rundown ETW di CLR
La tabella seguente contiene le parole chiave di rundown ETW di CLR, i rispettivi valori e informazioni sullo scopo per cui vengono usate.
Nome parola chiave di rundown | valore | Scopo |
---|---|---|
LoaderRundownKeyword |
0x00000008 | Consente la raccolta di eventi del caricatore se usata con StartRundownKeyword e EndRundownKeyword . |
JitRundownKeyword |
0x00000010 | Consente la raccolta di eventi DCStart e DCEnd per metodi compilati tramite JIT se usata con StartRundownKeyword e EndRundownKeyword . |
NGenRundownKeyword |
0x00000020 | Consente la raccolta di eventi DCStart e DCEnd per metodi delle immagini native NGen se usata con StartRundownKeyword e EndRundownKeyword . Questa parola chiave ha un overhead elevato. Genera eventi per ogni metodo incluso in ogni modulo NGen caricato. Se possibile, invece di usare questa parola chiave è consigliabile usare database di programma (PDB) generati da strumenti di profilatura che recuperano informazioni sui metodi dai moduli NGen. Vedere anche OverrideAndSuppressNGenEventsRundownKeyword più avanti in questa tabella. |
StartRundownKeyword |
0x00000040 | Consente l'enumerazione dello stato del sistema durante un rundown di avvio. |
EndRundownKeyword |
0x00000100 | Consente l'enumerazione dello stato del sistema durante un rundown di fine. |
AppDomainResourceManagementRundownKeyword |
0x00000800 | Consente la raccolta di eventi per il monitoraggio delle risorse a livello di AppDomain se usata con StartRundownKeyword o EndRundownKeyword . |
ThreadingKeyword |
0x00010000 | Consente la raccolta di eventi del pool di thread. |
OverrideAndSuppressNGenEventsRundownKeyword |
0x00040000 | Disponibile in .NET Framework 4.5 e versioni successive. Elimina la parola chiave high-overhead NGenRundownKeyword e impedisce la generazione di eventi per i metodi che si trovano all'interno di moduli NGen. A partire da .NET Framework 4.5, gli strumenti di profilatura devono usare OverrideAndSuppressNGenEventsRundownKeyword e NGenRundownKeyword insieme per eliminare la generazione di eventi per i metodi nei moduli NGen. In questo modo, lo strumento di profilatura può usare i più efficienti PDB NGen per ottenere informazioni sui metodi nei moduli NGen. CLR in .NET Framework 4 e versioni precedenti non supporta la creazione di PDB NGen. In queste versioni precedenti CLR non riconosce OverrideAndSuppressNGenEventsRundownKeyword ed elabora NGenRundownKeyword per generare eventi per i metodi nei moduli NGen. |
PerfTrackKeyWord |
0x2000000 | Consente la raccolta degli eventi ModuleDCStart , ModuleDCEnd , ModuleRangeDCStart e ModuleRangeDCEnd . |
Combinazioni di parole chiave per la risoluzione dei simboli per il provider di runtime
Parole chiave e flag | Eventi di caricamento/scaricamento di domini applicazione, assembly e moduli | Eventi di caricamento/scaricamento di metodi (tranne gli eventi dinamici) | Eventi dinamici di caricamento/eliminazione di metodi |
---|---|---|---|
LoaderKeyword |
Eventi di caricamento e scaricamento di moduli. | No. | No. |
JITKeyword (+ StartEnumerationKeyword non aggiunge nulla) |
Nessuno. | Eventi di caricamento. | Eventi di caricamento e scaricamento di moduli. |
JITKeyword +EndEnumerationKeyword |
Nessuno. | Eventi di caricamento e scaricamento di moduli. | Eventi di caricamento e scaricamento di moduli. |
NGenKeyword |
No. | No. | Non applicabile. |
NGenKeyword +StartEnumerationKeyword |
Nessuno. | Eventi di caricamento. | Non applicabile. |
NGenKeyword +EndEnumerationKeyword |
Nessuno. | Eventi di scaricamento. | Non applicabile. |
Combinazioni di parole chiave per la risoluzione dei simboli per il provider di rundown
Parole chiave e flag | Eventi DCStart/DCEnd di domini applicazione, assembly e moduli | Eventi DCStart/DCEnd di metodi (inclusi gli eventi di metodi dinamici) |
---|---|---|
LoaderRundownKeyword +StartRundownKeyword |
EventiDCStart . |
Nessuno. |
LoaderRundownKeyword +EndRundownKeyword |
EventiDCEnd . |
No. |
JITKeyword +StartRundownKeyword |
No. | EventiDCStart . |
JITKeyword +EndRundownKeyword |
Nessuno. | EventiDCEnd . |
NGenKeyword +StartRundownKeyword |
Nessuno. | EventiDCStart . |
NGenKeyword +EndRundownKeyword |
Nessuno. | EventiDCEnd . |
Livelli evento ETW
Gli eventi ETW possono essere filtrati in base al livello. Se il livello è impostato su 0x5, vengono generati gli eventi di tutti i livelli, inclusi il livello 0x5 e quelli inferiori (ovvero gli eventi che appartengono alle categorie abilitate tramite le parole chiave). Se il livello è impostato su 0x2, vengono generati solo gli eventi che appartengono al livello 0x2 e a quelli inferiori.
I livelli hanno i significati seguenti:
0x5 - Dettagliato
0x4 - Informativo
0x3 - Avviso
0x2 - Errore
0x1 - Critico
0x0 - LogAlways