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 によって処理されるメソッド) のイベントの収集を可能にします。 StartEnumerationKeyword と EndEnumerationKeyword で使用します。 このキーワードには高いオーバーヘッドが設定されています。 読み込まれたすべての NGen モジュールの中すべてのメソッドに対してイベントを生成します。 可能であれば、このキーワードを使用する代わりに、プロファイリング ツールによって生成されたプログラム データベース (PDB) を使用して、NGen モジュールからメソッドに関する情報を取得することをお勧めします。 この表で後述する OverrideAndSuppressNGenEventsKeyword も参照してください。 |
StartEnumerationKeyword |
0x00000040 | ランタイム内のすべてのメソッドの列挙を有効にします。 NGenKeyword と組み合わせて使用します。 |
EndEnumerationKeyword |
0x00000080 | ランタイム内の破棄されたすべてのメソッドの列挙を有効にします。 JITKeyword と NGenKeyword を組み合わせて使用します。 |
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 以降、プロファイル ツールでは OverrideAndSuppressNGenEventsKeyword と NGenKeyword を一緒に使用して、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 以降、プロファイル ツールでは OverrideAndSuppressNGenEventsRundownKeyword と NGenRundownKeyword を一緒に使用して、NGen モジュール内のメソッドのイベントの生成が抑制されます。 これにより、プロファイル ツールはより効率的な NGen PDB を使用して NGen モジュール内のメソッドに関する情報を取得できます。 .NET Framework 4 以前のバージョンの CLR では、NGen PDB の作成はサポートされていません。 これらのバージョンにおいて、CLR は OverrideAndSuppressNGenEventsRundownKeyword を認識せず、 NGenRundownKeyword を処理して NGen モジュール内のメソッドのイベントを生成します。 |
PerfTrackKeyWord |
0x2000000 | ModuleDCStart 、 ModuleDCEnd 、 ModuleRangeDCStart 、および 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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET