CLR ETW キーワードおよびレベル

Windows (ETW) イベントのイベント トレースは、カテゴリとレベルによってフィルター処理できます。 イベントの CLR ETW キーワード は、イベントをカテゴリ別にフィルタ処理できます。これらはランタイム プロバイダーとランダウン プロバイダー用に組み合わせて使用します。 イベント レベル は、フラグによって識別されます。

CLR ETW キーワード

キーワードは、組み合わせて値を生成できるフラグです。 実際には、コマンド ライン ユーティリティを呼び出す際に、キーワード名ではなくキーワードの 16 進数の値を使用します。

これらのキーワードの説明を次の表に示します。

CLR ETW ランタイム キーワード

CLR ETW のランタイム キーワード、その値、およびその用途を次の表に示します。

ランタイム キーワード名 目的
GCKeyword 0x00000001 ガベージ コレクション イベントのコレクションを有効にします。
LoaderKeyword 0x00000008 ローダー イベントのコレクションを有効にします。
JITKeyword 0x00000010 Just-In-Time (JIT) イベントのコレクションを可能にします。
NGenKeyword 0x00000020 ネイティブ イメージ メソッド (ネイティブ イメージ ジェネレーター、Ngen.exe によって処理されるメソッド) のイベントの収集を可能にします。 StartEnumerationKeywordEndEnumerationKeywordで使用します。 このキーワードには高いオーバーヘッドが設定されています。 読み込まれたすべての NGen モジュールの中すべてのメソッドに対してイベントを生成します。 可能であれば、このキーワードを使用する代わりに、プロファイリング ツールによって生成されたプログラム データベース (PDB) を使用して、NGen モジュールからメソッドに関する情報を取得することをお勧めします。 この表で後述する OverrideAndSuppressNGenEventsKeyword も参照してください。
StartEnumerationKeyword 0x00000040 ランタイム内のすべてのメソッドの列挙を有効にします。 NGenKeywordと組み合わせて使用します。
EndEnumerationKeyword 0x00000080 ランタイム内の破棄されたすべてのメソッドの列挙を有効にします。 JITKeywordNGenKeywordを組み合わせて使用します。
SecurityKeyword 0x00000400 セキュリティ イベントのコレクションを有効にします。
AppDomainResourceManagementKeyword 0x00000800 アプリケーション ドメイン レベルでのリソース監視イベントのコレクションを有効にします。
JITTracingKeyword 0x00001000 JIT トレース イベントのコレクションを有効にします。
InteropKeyword 0x00002000 相互運用イベントのコレクションを有効にします。
ContentionKeyword 0x00004000 競合イベントのコレクションを有効にします。
ExceptionKeyword 0x00008000 例外イベントのコレクションを有効にします。
ThreadingKeyword 0x00010000 スレッド プール イベントのコレクションを有効にします。
OverrideAndSuppressNGenEventsKeyword 0x00040000 (.NET Framework 4.5 以降で使用可能。)高いオーバーヘッドの NGenKeyword キーワードを抑制し、NGen モジュール内にあるメソッドのイベントが生成されないようにします。 .NET Framework 4.5 以降、プロファイル ツールでは OverrideAndSuppressNGenEventsKeywordNGenKeyword を一緒に使用して、NGen モジュール内のメソッドのイベントの生成が抑制されます。 これにより、プロファイル ツールはより効率的な NGen PDB を使用して NGen モジュール内のメソッドに関する情報を取得できます。 .NET Framework 4 以前のバージョンの CLR では、NGen PDB の作成はサポートされていません。 これらのバージョンにおいて、CLR は OverrideAndSuppressNGenEventsKeyword を認識せず、 NGenKeyword を処理して NGen モジュール内のメソッドのイベントを生成します。
PerfTrackKeyWord 0x2000000 ModuleLoad イベントおよび ModuleRange イベントのコレクションを有効にします。
StackKeyword 0x40000000 CLR スタック トレース イベントのコレクションを有効にします。

CLR ETW ランダウン キーワード

CLR ETW ランダウン キーワード、その値、およびその用途を次の表に示します。

ランダウン キーワード名 目的
LoaderRundownKeyword 0x00000008 StartRundownKeyword および EndRundownKeywordと一緒に使用する場合のローダー イベントのコレクションを有効にします。
JitRundownKeyword 0x00000010 DCStart および DCEnd と一緒に使用する場合の、メソッド StartRundownKeyword と JIT コンパイルされたメソッドの EndRundownKeywordイベントのコレクションを有効にします。
NGenRundownKeyword 0x00000020 DCStart および DCEnd と一緒に使用する場合の、メソッド StartRundownKeyword と NGen ネイティブ イメージ メソッドの EndRundownKeywordイベントのコレクションを有効にします。 このキーワードには高いオーバーヘッドが設定されています。 読み込まれたすべての NGen モジュールの中すべてのメソッドに対してイベントを生成します。 可能であれば、このキーワードを使用する代わりに、プロファイリング ツールによって生成されたプログラム データベース (PDB) を使用して、NGen モジュールからメソッドに関する情報を取得することをお勧めします。 この表で後述する OverrideAndSuppressNGenEventsRundownKeyword も参照してください。
StartRundownKeyword 0x00000040 開始ランダウン中のシステム状態の列挙を有効にします。
EndRundownKeyword 0x00000100 終了ランダウン中のシステム状態の列挙を有効にします。
AppDomainResourceManagementRundownKeyword 0x00000800 AppDomain または StartRundownKeyword と一緒に使用した場合の、 EndRundownKeywordレベルでのリソース監視のイベントのコレクションを有効にします。
ThreadingKeyword 0x00010000 スレッド プール イベントのコレクションを有効にします。
OverrideAndSuppressNGenEventsRundownKeyword 0x00040000 (.NET Framework 4.5 以降で使用可能。)高いオーバーヘッドの NGenRundownKeyword キーワードを抑制し、NGen モジュール内にあるメソッドのイベントが生成されないようにします。 .NET Framework 4.5 以降、プロファイル ツールでは OverrideAndSuppressNGenEventsRundownKeywordNGenRundownKeyword を一緒に使用して、NGen モジュール内のメソッドのイベントの生成が抑制されます。 これにより、プロファイル ツールはより効率的な NGen PDB を使用して NGen モジュール内のメソッドに関する情報を取得できます。 .NET Framework 4 以前のバージョンの CLR では、NGen PDB の作成はサポートされていません。 これらのバージョンにおいて、CLR は OverrideAndSuppressNGenEventsRundownKeyword を認識せず、 NGenRundownKeyword を処理して NGen モジュール内のメソッドのイベントを生成します。
PerfTrackKeyWord 0x2000000 ModuleDCStartModuleDCEndModuleRangeDCStart、および ModuleRangeDCEnd の各イベントのコレクションを有効にします。

ランタイム プロバイダーのシンボル解決のキーワードの組み合わせ

キーワードとフラグ アプリケーション ドメイン、アセンブリ、モジュールのロード/アンロード イベント メソッドのロード/アンロード イベント (動的イベントを除く) 動的メソッドのロード/破棄イベント
LoaderKeyword イベントをロードおよびアンロードします。 [なし] : [なし] :
JITKeyword

(+ StartEnumerationKeyword は何も追加しません)
[なし] : イベントをロードします。 イベントをロードおよびアンロードします。
JITKeyword +

EndEnumerationKeyword
[なし] : イベントをロードおよびアンロードします。 イベントをロードおよびアンロードします。
NGenKeyword [なし] : [なし] : 適用不可。
NGenKeyword +

StartEnumerationKeyword
[なし] : イベントをロードします。 適用不可。
NGenKeyword +

EndEnumerationKeyword
[なし] : イベントをアンロードします。 適用不可。

ランダウン プロバイダーのシンボル解決のキーワードの組み合わせ

キーワードとフラグ アプリケーション ドメイン、アセンブリ、モジュールの DCStart/DCEnd イベント メソッドの DCStart/DCEnd イベント (イベントの動的メソッドを含む)
LoaderRundownKeyword +

StartRundownKeyword
DCStart イベント。 [なし] :
LoaderRundownKeyword +

EndRundownKeyword
DCEnd イベント。 [なし] :
JITKeyword +

StartRundownKeyword
[なし] : DCStart イベント。
JITKeyword +

EndRundownKeyword
[なし] : DCEnd イベント。
NGenKeyword +

StartRundownKeyword
[なし] : DCStart イベント。
NGenKeyword +

EndRundownKeyword
[なし] : DCEnd イベント。

ETW イベントのレベル

ETW イベントはレベルでフィルター処理することもできます。 レベルが 0x5 に設定されている場合 0x5 以下を含むすべてのレベルのイベント (キーワードによって有効になったカテゴリに属するイベント) が発生します。 レベルが 0x2 に設定されている場合、レベル 0x2 以下に属するイベントのみが発生します。

各レベルには次のような意味があります。

0x5 - 詳細

0x4 - 情報

0x3 - 警告

0x2 - エラー

0x1 - 重大

0x0 - LogAlways

関連項目