CLR-ETW-Schlüsselwörter und -Ebenen

ETW (Event Tracing for Windows, Ereignisablaufverfolgung für Windows)-Ereignisse können nach Kategorie und Ebene gefiltert werden. Ereignis- CLR-ETW-Schlüsselwörter ermöglichen das Filtern von Ereignissen nach Kategorie. Sie werden in Kombination für die Runtime- und die Rundownanbieter verwendet. Die Ereignisebenen werden durch Flags gekennzeichnet.

CLR-ETW-Schlüsselwörter

Schlüsselwörter sind Flags, die kombiniert werden können, um Werte zu generieren. In der Praxis werden Hexadezimalwerte der Schlüsselwörter anstelle der Schlüsselwortnamen verwendet, wenn die Befehlszeilenprogramme aufgerufen werden.

Schlüsselwörter werden in den folgenden Tabellen beschrieben:

CLR-ETW-Laufzeitschlüsselwörter

In der folgenden Tabelle sind die CLR-ETW-Laufzeitschlüsselwörter, ihre Werte und ihr Verwendungszweck aufgeführt.

Name des Laufzeitschlüsselworts Wert Zweck
GCKeyword 0x00000001 Aktiviert das Sammeln von Garbage Collection-Ereignissen.
LoaderKeyword 0x00000008 Aktiviert das Sammeln von Ladeprogrammereignissen.
JITKeyword 0x00000010 Aktiviert das Sammeln von JIT (Just-in-Time)-Ereignissen.
NGenKeyword 0x00000020 Aktiviert das Sammeln von Ereignissen für systemeigene Imagemethoden (von Native Image Generator [Ngen.exe] verarbeitete Methoden); wird mit StartEnumerationKeyword und EndEnumerationKeywordverwendet. Dieses Schlüsselwort weist einen hohen Aufwand auf. Es generiert Ereignisse für jede Methode innerhalb von jedem geladenen NGen-Modul. Anstelle dieses Schlüsselworts sollten Sie nach Möglichkeit die durch Profilerstellungstools generierten Programmdatenbanken (PBDs) verwenden, um Informationen über Methoden aus den NGen-Modulen abzurufen. Siehe auch OverrideAndSuppressNGenEventsKeyword weiter unten in dieser Tabelle.
StartEnumerationKeyword 0x00000040 Ermöglicht die Enumeration aller Methoden in der Laufzeit; wird in Verbindung mit NGenKeywordverwendet.
EndEnumerationKeyword 0x00000080 Ermöglicht die Enumeration aller Methoden, die in der Laufzeit zerstört wurden; wird in Verbindung mit JITKeyword und NGenKeywordverwendet.
SecurityKeyword 0x00000400 Ermöglicht das Sammeln von Sicherheitsereignissen.
AppDomainResourceManagementKeyword 0x00000800 Ermöglicht das Sammeln von Ressourcenüberwachungsereignissen auf einer Anwendungsdomänenebene.
JITTracingKeyword 0x00001000 Ermöglicht das Sammeln von JIT-Ablaufverfolgungsereignissen.
InteropKeyword 0x00002000 Ermöglicht das Sammeln von Interop-Ereignissen.
ContentionKeyword 0x00004000 Ermöglicht das Sammeln von Konfliktereignissen.
ExceptionKeyword 0x00008000 Ermöglicht das Sammeln von Ausnahmeereignissen.
ThreadingKeyword 0x00010000 Ermöglicht das Sammeln von Threadpoolereignissen.
OverrideAndSuppressNGenEventsKeyword 0x00040000 (Verfügbar im .NET Framework 4.5 und höher.) Unterdrückt das aufwendige NGenKeyword-Schlüsselwort und verhindert die Generierung von Ereignissen für Methoden, die in NGen-Modulen enthalten sind. Ab .NET Framework 4.5 sollten Profilerstellungstools OverrideAndSuppressNGenEventsKeyword und NGenKeyword zusammen verwenden, um die Generierung von Ereignissen für Methoden in NGen-Modulen zu unterdrücken. Dies ermöglicht dem Profilerstellungstool eine effizientere Verwendung von NGen-PDBs, um Informationen über Methoden in NGen-Modulen abzurufen. Die CLR in .NET Framework 4 und früheren Versionen unterstützt nicht die Erstellung von NGen-PDBs. Bei diesen älteren Versionen erkennt CLR keine OverrideAndSuppressNGenEventsKeyword und verarbeitet NGenKeyword , um Ereignisse für Methoden in NGen-Modulen zu generieren.
PerfTrackKeyWord 0x2000000 Aktiviert das Sammeln von ModuleLoad - und ModuleRange -Ereignissen.
StackKeyword 0x40000000 Ermöglicht das Sammeln von CLR- Stapelüberwachungsereignissen.

CLR-ETW-Rundownschlüsselwörter

In der folgenden Tabelle sind die CLR-ETW-Rundownschlüsselwörter, ihre Werte und ihr Verwendungszweck aufgeführt.

Name des Rundownschlüsselworts Wert Zweck
LoaderRundownKeyword 0x00000008 Ermöglicht das Sammeln von Ladeprogrammereignissen bei Verwendung mit StartRundownKeyword und EndRundownKeyword.
JitRundownKeyword 0x00000010 Ermöglicht das Sammeln von methodenbezogenen DCStart - und DCEnd -Ereignissen für JIT-kompilierte Methoden bei Verwendung mit StartRundownKeyword und EndRundownKeyword.
NGenRundownKeyword 0x00000020 Ermöglicht das Sammeln von methodenbezogenen DCStart - und DCEnd -Ereignissen für systemeigene NGen-Imagemethoden bei Verwendung mit StartRundownKeyword und EndRundownKeyword. Dieses Schlüsselwort weist einen hohen Aufwand auf. Es generiert Ereignisse für jede Methode innerhalb von jedem geladenen NGen-Modul. Anstelle dieses Schlüsselworts sollten Sie nach Möglichkeit die durch Profilerstellungstools generierten Programmdatenbanken (PBDs) verwenden, um Informationen über Methoden aus den NGen-Modulen abzurufen. Siehe auch OverrideAndSuppressNGenEventsRundownKeyword weiter unten in dieser Tabelle.
StartRundownKeyword 0x00000040 Ermöglicht die Enumeration des Systemzustands während eines Startrundowns.
EndRundownKeyword 0x00000100 Ermöglicht die Enumeration des Systemzustands während eines Endrundowns.
AppDomainResourceManagementRundownKeyword 0x00000800 Ermöglicht das Sammeln von Ereignissen für die Ressourcenüberwachung auf einer AppDomain -Ebene bei Verwendung mit StartRundownKeyword oder EndRundownKeyword.
ThreadingKeyword 0x00010000 Ermöglicht das Sammeln von Threadpoolereignissen.
OverrideAndSuppressNGenEventsRundownKeyword 0x00040000 (Verfügbar im .NET Framework 4.5 und höher.) Unterdrückt das aufwendige NGenRundownKeyword-Schlüsselwort und verhindert die Generierung von Ereignissen für Methoden, die in NGen-Modulen enthalten sind. Ab .NET Framework 4.5 sollten Profilerstellungstools OverrideAndSuppressNGenEventsRundownKeyword und NGenRundownKeyword zusammen verwenden, um die Generierung von Ereignissen für Methoden in NGen-Modulen zu unterdrücken. Dies ermöglicht dem Profilerstellungstool eine effizientere Verwendung von NGen-PDBs, um Informationen über Methoden in NGen-Modulen abzurufen. Die CLR in .NET Framework 4 und früheren Versionen unterstützt nicht die Erstellung von NGen-PDBs. Bei diesen älteren Versionen erkennt CLR keine OverrideAndSuppressNGenEventsRundownKeyword und verarbeitet NGenRundownKeyword , um Ereignisse für Methoden in NGen-Modulen zu generieren.
PerfTrackKeyWord 0x2000000 Aktiviert das Sammeln von ModuleDCStart-, ModuleDCEnd-, ModuleRangeDCStart- und ModuleRangeDCEnd -Ereignissen.

Schlüsselwortkombinationen zur Symbolauflösung für den Laufzeitanbieter

Schlüsselwörter und Flags Anwendungsdomäne, Assembly, modulbezogene Lade-/Entladeereignisse Methodenbezogene Lade-/Entladeereignisse (außer dynamische Ereignisse) Dynamische methodenbezogene Lade-/Zerstörungsereignisse
LoaderKeyword Lade- und Entaldeereignisse Keine. Keine.
JITKeyword

(+ StartEnumerationKeyword fügt nichts hinzu)
Keine. Ladeereignisse Lade- und Entaldeereignisse
JITKeyword +

EndEnumerationKeyword
Keine. Lade- und Entaldeereignisse Lade- und Entaldeereignisse
NGenKeyword Keine. Keine. Nicht zutreffend
NGenKeyword +

StartEnumerationKeyword
Keine. Ladeereignisse Nicht zutreffend
NGenKeyword +

EndEnumerationKeyword
Keine. Entladeereignisse Nicht zutreffend

Schlüsselwortkombinationen zur Symbolauflösung für den Rundownanbieter

Schlüsselwörter und Flags Anwendungsdomäne, Assembly, modulbezogene DCStart-/DCEnd-Ereignisse Methodenbezogene DCStart-/DCEnd-Ereignisse (einschließlich dynamischer Methodenereignisse)
LoaderRundownKeyword +

StartRundownKeyword
DCStart -Ereignisse Keine.
LoaderRundownKeyword +

EndRundownKeyword
DCEnd -Ereignisse Keine.
JITKeyword +

StartRundownKeyword
Keine. DCStart -Ereignisse
JITKeyword +

EndRundownKeyword
Keine. DCEnd -Ereignisse
NGenKeyword +

StartRundownKeyword
Keine. DCStart -Ereignisse
NGenKeyword +

EndRundownKeyword
Keine. DCEnd -Ereignisse

ETW-Ereignisebenen

ETW-Ereignisse können auch nach Ebene gefiltert werden. Wenn die Ebene auf 0x5 festgelegt wird, werden Ereignisse aller Ebenen, einschließlich 0x5 und darunter, ausgelöst (wobei es sich um Ereignisse handelt, die zu durch Schlüsselwörter aktivierten Kategorien gehören). Wenn die Ebene bei 0x2 festgelegt wird, werden nur Ereignisse, die zu Ebene 0x2 und darunter gehören, ausgelöst.

Die Ebenen haben folgende Bedeutung:

0x5 – Ausführlich

0x4 – Informationen

0x3 – Warnung

0x2 – Fehler

0x1 – Wichtig

0x0 – LogAlways

Siehe auch