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:
Schlüsselwortkombinationen zur Symbolauflösung für den Laufzeitanbieter
Schlüsselwortkombinationen zur Symbolauflösung für den Rundownanbieter
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 EndEnumerationKeyword verwendet. 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 NGenKeyword verwendet. |
EndEnumerationKeyword |
0x00000080 | Ermöglicht die Enumeration aller Methoden, die in der Laufzeit zerstört wurden; wird in Verbindung mit JITKeyword und NGenKeyword verwendet. |
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