Windows (ETW) のイベント トレースを使用して、共通言語ランタイム (CLR) イベントを記録できます。 トレースを作成および表示するには、次のツールを使用します。
Windows オペレーティング システムに含まれている Logman および Tracerpt コマンド ライン ツール。
Windows パフォーマンス ツールキットの Xperf ツール。 Xperf の詳細については、 Windows パフォーマンスのブログを参照してください。
CLR イベント情報をキャプチャするには、CLR プロバイダーがコンピューターにインストールされている必要があります。 プロバイダーがインストールされていることを確認するには、コマンド プロンプトで「 logman query providers
」と入力します。 プロバイダーの一覧が表示されます。 この一覧には、次のように CLR プロバイダーのエントリが含まれている必要があります。
Provider GUID
-------------------------------------------------------------------------------
.NET Common Language Runtime {E13C0D23-CCBC-4E12-931B-D9CC2EEE27E4}.
CLR プロバイダーが一覧にない場合は、Windows Wevtutil コマンド ライン ツールを使用して、Windows Vista 以降のオペレーティング システムにインストールできます。 管理者としてコマンド プロンプト ウィンドウを開きます。 プロンプト ディレクトリを .NET Framework 4 フォルダー (%WINDIR%\Microsoft.NET\Framework[64]\v4.< に変更します。NET バージョン>\ )。 このフォルダーには、CLR-ETW.man ファイルが含まれています。 コマンド プロンプトで、次のコマンドを入力して CLR プロバイダーをインストールします。
wevtutil im CLR-ETW.man
CLR ETW イベントのキャプチャ
Logman および Xperf コマンド ライン ツールを使用して ETW イベントをキャプチャし、Tracerpt ツールと Xperf ツールを使用してトレース イベントをデコードできます。
ログ記録を有効にするには、ユーザーは次の 3 つを指定する必要があります。
通信するプロバイダー。
キーワードのセットを表す 64 ビットの数値。 各キーワードは、プロバイダーが有効にできる一連のイベントを表します。 この数値は、有効にするキーワードの組み合わせのセットを表します。
記録レベル (詳細度) を表す小さな数値。 レベル 1 は最も詳細度が低く、レベル 5 が最も詳細です。 レベル 0 は、プロバイダー固有の意味を持つ既定値です。
Logman を使用して CLR ETW イベントをキャプチャするには
コマンド プロンプトで、次のように入力します。
logman start clrevents -p {e13c0d23-ccbc-4e12-931b-d9cc2eee27e4} 0x1CCBD 0x5 -ets -ct perf
どこで:
-p
パラメーターは、プロバイダー GUID を識別します。0x1CCBD
は、発生するイベントのカテゴリを指定します。0x5
は、ログ記録のレベルを設定します (この場合は verbose (5))。-ets
パラメーターは、イベント トレース セッションにコマンドを送信するように Logman に指示します。-ct perf
パラメーターは、QueryPerformanceCounter
関数を使用して各イベントのタイム スタンプをログに記録することを指定します。
イベントのログ記録を停止するには、次のように入力します。
logman stop clrevents -ets
このコマンドは、clrevents.etl という名前のバイナリ トレース ファイルを作成します。
Xperf を使用して CLR ETW イベントをキャプチャするには
コマンド プロンプトで、次のように入力します。
xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4:0x1CCBD:5 -f clrevents.etl
GUID には CLR ETW プロバイダーの GUID を指定します。
0x1CCBD:5
を指定すると、レベル 5 (詳細) 以下のすべての内容がトレースされます。トレースを停止するには、次のように入力します。
Xperf -stop clr
このコマンドは、clrevents.etl という名前のトレース ファイルを作成します。
CLR ETW イベントの表示
CLR ETW イベントを表示するには、次のコマンドを使用します。 イベントの詳細については、「 CLR ETW イベント」を参照してください。
Tracerpt を使用して CLR ETW イベントを表示するには
コマンド プロンプトで、次のように入力します。
tracerpt clrevents.etl
このコマンドは、dumpfile.xml と summary.txtの 2 つのファイルを作成します。 dumpfile.xml ファイルにはすべてのイベントが一覧表示され、summary.txt はイベントの概要を示します。
Xperf を使用して CLR ETW イベントを表示するには
コマンド プロンプトで、次のように入力します。
xperf clrevents.etl
このコマンドを実行すると、Xperf ETL ファイル ビューアーが開きます。 このビューアーでは、CLR イベントが [汎用イベント ] ビューに表示されます。 種類別に分類されたイベントのデータ グリッドを表示するには、このビューで時間の領域を選択し、右クリックして [概要] を選択 します。
.etl ファイルをコンマ区切り値ファイルに変換するには
コマンド プロンプトで、次のように入力します。
xperf -i clrevents.etl -f clrevents.csv
このコマンドにより、XPerf は、表示できるコンマ区切り値 (CSV) ファイルとしてイベントをダンプします。 イベントによってフィールドが異なるため、この CSV ファイルにはデータの前に複数のヘッダー行が含まれます。 各行の最初のフィールドはイベントの種類で、残りのフィールドを決定するために使用するヘッダーを示します。
こちらも参照ください
.NET