Tracelog のコマンド構文

Tracelog には、トレース セッションを開始、停止、および制御するコマンド (またはアクション) があります。

Note

トレース セッションを制御するには、コンピューターのパフォーマンス ログ ユーザー グループまたは 管理istrators グループのメンバーである必要があります (管理者として実行)。

    tracelog [actions] [options] | [-h | -help | -?] 

パラメーター

Tracelog パラメーターの詳細については、[アクション] [オプション]」を参照してください。

[アクション]

-addautologger [LoggerName]
自動ロガー セッションのレジストリ エントリを構成します。 自動ロガー セッションは、システムの起動時にドライバーまたはその他のトレース プロバイダーのアクティビティをトレースするための推奨される方法です。 -sessionguid オプションを使用してセッション GUID を指定する必要があります。 tracelog -addautologger コマンドは、Tracelog -start コマンドと同じオプションを使用します。

-capturestate [LoggerName]
LoggerName に対して有効になっているすべてのプロバイダーに状態情報をログに記録するように要求します。 有効なキーワードは、ログに記録される情報の種類を判断するのに役立ちます。

-disable [LoggerName]
指定されたトレース プロバイダーを無効にします。 プロバイダーを無効にすると、実行は続行されますが、トレース メッセージの生成は停止します。

tracelog -stop コマンドは、セッションを停止する前にトレース プロバイダーを無効にします。 トレース セッションを停止する前にプロバイダーを無効にする必要はありません。 ただし、tracelog -disable コマンドを使用すると、トレース セッションを停止せずに選択したプロバイダーを無効にすることができます。

無効にすると、トレース プロバイダーはトレース セッション バッファーにトレース メッセージを送信できなくなりますが、バッファーをフラッシュしたり、トレース セッションを停止したりすることはありません。 tracelog -flush コマンドを使用してバッファーをフラッシュし、tracelog -stop または tracelog -x (すべて停止) コマンドを使用してトレース セッションを停止します。

Tracelog では、EnableTrace 関数を使用して tracelog -disable コマンドを実装します。 この関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

-enable [LoggerName]
LoggerName トレース セッションに対して 1 つ以上のトレース プロバイダーを有効にします。

プロバイダーを有効にすると、プロバイダーはトレース メッセージを生成し、トレース セッションのバッファーに送信します。 有効にしたときにプロバイダーが実行されていない (または読み込まれていない) 場合、システムはプロバイダーを事前登録します。つまり、ETW 登録データベース内のプロバイダーの領域が予約され、enable コマンドが保存されます。 プロバイダーが起動して実際に登録すると、保存された enable コマンドを受け取り、セッションへのトレース メッセージの送信を開始します。

tracelog -start コマンドを使用すると、tracelog -start コマンドでオプションの -guid パラメーターで指定されたすべてのプロバイダーが有効になります。 別の tracelog -enable コマンドを送信する必要はありません。

tracelog -enable コマンドを使用して、実行中のトレース セッションにプロバイダーを追加したり、トレース中にプロバイダーのフラグとレベルを変更したり、tracelog -disable コマンドを使用して無効にしたプロバイダーを再度有効にしたりできます。

tracelog -enable コマンドを使用する場合は、まず tracelog -start コマンドを送信してトレース セッションを開始し、次に tracelog -enable コマンドを送信してプロバイダーを有効にします。

実行中のプロバイダーを無効にすることなく、繰り返し有効にすることができます。 (フラグとレベルを変更するためにこれを行う場合があります)。

-flag パラメーターと -level パラメーターで指定したトレース フラグとトレース レベルは、-guid パラメーターで表されるすべてのトレース プロバイダーに渡されます。 トレース プロバイダーごとに異なるフラグとレベルを指定するには、独自のフラグとレベル設定を使用して、プロバイダーごとに個別の tracelog -enable コマンドを送信します。

グローバル ロガー トレース セッションの実行中に NT カーネル ロガー フラグ (-noprocess-nothread-fio-cm など) を有効にすると、グローバル ロガー セッションが NT カーネル ロガー トレース セッションに変換されます。 この機能は、ブート プロセス中にカーネル イベントをトレースするように設計されています。

-enableex [LoggerName]
-enable と同じです。 このオプションは、将来のバージョンの Tracelog で削除される可能性があります。

-enumguid
Windows イベント トレーシング (ETW) に登録されているシステム上のプロバイダーを列挙 (またはリスト) します。 Enumguid ディスプレイの説明については、「Tracelog Enumguid Display」を参照してください。

Tracelog では、EnumerateTraceGuids 関数を使用して tracelog -enumguid コマンドを実装します。 この関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

-enumguidex [#guid]
Windows イベント トレーシング (ETW) に登録されているシステム上のプロバイダーを列挙 (またはリスト) します。 EnumguidEx ディスプレイの説明については、「Tracelog Enumguid Display」を参照してください。

Tracelog では、EnumerateTraceGuidsEx 関数を使用して tracelog -enumguidex コマンドを実装します。 この関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

-flush [LoggerName]
LoggerName トレース セッションのアクティブなバッファーをフラッシュします。 LoggerName が指定されていない場合、Tracelog は NT カーネル ロガー トレース セッションのバッファーをフラッシュします。

この強制フラッシュは、トレース メッセージ バッファーがいっぱいになったときやトレース セッションが停止するたびに自動的に発生するフラッシュに加えて、フラッシュ タイマー (-ft) によってアクティブ化されるフラッシュに加えて行われます。

トレース セッションのバッファーをフラッシュすると、バッファー内のイベントはすぐにトレース ログまたはトレース コンシューマーに配信されます。

フラッシュによってトレース プロバイダーが無効にされたり、トレース メッセージがリダイレクトされたりすることはありません。 バッファーがフラッシュされた後、トレース プロバイダーはバッファーへのイベントの書き込みを続行します。

Tracelog では、FlushTrace 関数を使用して tracelog -flush コマンドを実装します。 この関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

tracelog -flush コマンドを -f Logfile オプションと共に使用すると、バッファー内の現在のトレース メッセージを指定したトレース ログ (.etl) ファイルにフラッシュできます。 このパラメーターは、バッファー処理されたトレース セッション (-buffering) に対してのみ有効です。他のトレース セッションの種類の場合、-f パラメーターは無視されます。

このフラッシュは、バッファーの現在の内容にのみ影響します。 以降のトレース メッセージはトレース ログにリダイレクトされません。

-l [-lp]
コンピューターで実行されているすべてのトレース セッションのプロパティを一覧表示します。

-lp オプションを渡すと、Tracelog には各セッションで有効になっているすべてのプロバイダーも一覧表示されます。

-q [LoggerName] [-lp]
指定したトレース セッションのプロパティを一覧表示 (クエリ) します。 LoggerName を指定しない場合、Tracelog は NT カーネル ロガー トレース セッションに対してクエリを実行します。

-lp オプションを渡すと、Tracelog には各セッションで有効になっているすべてのプロバイダーも一覧表示されます。

-remove GlobalLogger
グローバル ロガー トレース セッションのレジストリ値を削除して再初期化します。 開始エントリの値を 0 (開始しない) に設定し、他のレジストリ エントリを削除します。 tracelog -remove コマンドは、グローバル ロガー トレース セッションでのみ機能します。 その他のセッション名の値はすべて無効です。

tracelog -remove コマンドは必要ありません。 ただし、Start エントリの値を 0 に設定しない場合は、システムを再起動するたびにグローバル ロガー セッションが開始されます。

tracelog -remove コマンドを使用しない場合、前のセッションのオプションはレジストリに残り、同じオプションに異なる値を持つ tracelog -start コマンドを送信しない限り、新しいセッションに使用されます。

-start [LoggerName]
トレース セッションを表すために選択した LoggerName を使用してトレース セッションを開始します。

グローバル ロガー トレース セッションを指定するには、LoggerName として GlobalLogger を使用します。 コンピューターを再起動すると、セッションが開始されます。

LoggerName には、Windows の名前付けガイドラインを満たす任意の名前 (最大 1,024 文字) を指定できます。 名前にスペースが含まれている場合は、名前を引用符で囲みます。 Tracelog では、大文字と小文字は区別されません。

既定値は、"NT カーネル ロガー"です。 このパラメーターを省略すると、Tracelog は NT カーネル ロガー トレース セッションを開始し、-guid パラメーターを使用して別のトレース プロバイダーを指定した場合にエラーを宣言します。

-stop [LoggerName]
指定したトレース セッションのプロバイダーを無効にし、セッションを終了します。

tracelog -stop コマンドはどちらもトレース プロバイダーを無効にし、トレース セッションを停止します。 tracelog -disable コマンドは、トレース プロバイダーのみを無効にします。

カーネル イベントをトレースするブート時グローバル ロガー セッションを開始する場合は、コマンド tracelog -stop "NT カーネル ロガー" または tracelog -stop GlobalLogger を使用して停止する必要があります。 いずれかのコマンドを使用してグローバル ロガー トレース セッション トレース セッションを停止すると、Tracelog はプロバイダーを停止しますが、レジストリ エントリの値はリセットされません。 グローバル ロガー レジストリ エントリの値をリセットするには、tracelog -remove を使用 します。

-systemrundown [LoggerName]
LoggerName セッションで送信されたランダウン イベントをログに記録するように SystemTraceProvider に要求します。 トレース セッションの開始については、「SystemTraceProvider セッションの構成と開始」を参照してください。

このコマンドは、Windows 8 以降のバージョンの Windows でのみ使用できます。

タイムアウト 価値
tracelog -enable コマンドを使用してプロバイダーを有効にする場合に使用するタイムアウト値をミリ秒単位 (ミリ秒) で指定します。 既定のタイムアウトは 0 秒です。

タイムアウト値が 0 の場合、Tracelog は各プロバイダーの enable コールバックを呼び出し、コールバックの完了を待たずに直ちに戻ります。

プロバイダーを同期的に有効にするには、タイムアウト値を指定します。 タイムアウト値を指定した場合、Tracelog は各プロバイダーの有効化コールバックが終了するか、タイムアウトの有効期限が切れるまで待機します。

一度に複数のプロバイダーを有効にすると、タイムアウトが各プロバイダーに順番に適用されます。

-update [LoggerName]
tracelog -update コマンドは、実行中のトレース セッションのプロパティを変更します。

tracelog -update コマンドでは、-guid パラメーターはプライベート トレース セッション (-um) を更新する場合にのみ有効です。セッションの実行中に標準トレース セッションにプロバイダーを追加または削除するには、tracelog -enable コマンドと tracelog -disable コマンドを使用します。

トレース ログ セッション (-f) を開始する場合は、リアルタイム セッション (-rt) に更新できますが、トレース コンシューマーに加えて、メッセージは引き続きトレース ログに送信されます。 更新してセッションからログを削除することはできません。 ただし、トレース ログ セッションにリアルタイム メッセージ配信を追加する前に、 最初に tracelog -flush コマンドを使用してバッファーを フラッシュ する必要があります。

リアルタイム セッション (-rt) を開始し、トレース ログ セッション (-f) に更新すると、新しいトレース メッセージはトレース コンシューマーに直接送信されなくなり、トレース ログにのみ送信されます。 トレース ログをリアルタイム トレース セッションに追加するには、tracelog -update コマンドで -rt-f の両方を使用します。 トレース ログ セッションにリアルタイム メッセージ配信を追加する前に、 最初に tracelog -flush コマンドを使用してバッファーを フラッシュ する必要があります。

グローバル ロガー トレース セッションを更新することはできません。

プライベート (ユーザー モード) トレース セッションの場合は、ログ ファイル名 (-f) とフラッシュ タイマー値 (-ft) のみを更新できます。

フラグとレベルを更新するには、tracelog -enable コマンドを使用して、新しいフラグまたはレベルでプロバイダーを再度有効にします。

Tracelog では、ControlTrace 関数を使用して tracelog -update コマンドを実装します。 この関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

[options]

-addtotriagedump

Note

このオプションは、デバッガーを使用してカーネル ダンプからイベントを表示する必要がある場合を除き、使用しないでください。

セッションのアクティブなバッファーをトリアージ メモリ ダンプに追加できるように指定します。 トリアージ ダンプのサイズは制限されており、セッションのバッファーによってダンプが最大サイズを超えた場合、バッファーは除外されます。

-append
-f パラメーターで指定されたイベント トレース ログ (.etl) ファイルにトレース メッセージを追加します。 既定では、新しいファイルが作成されます。

このパラメーターは、-f を含み、-rt または -cir を含まないコマンドでのみ有効です。

-b BufferSize
トレース セッションに割り当てられた各バッファーのサイズを KB (キロバイト)で指定します。 既定値は、プロセッサの数、物理メモリの量、使用中のオペレーティング システムによって決まります。

-bt n
フラッシュを開始する前に埋めるバッファーの数 (n) を指定します。 このオプションは、Windows 8.1 以降で使用できます。

バッファリング
バッファーに格納されたトレース セッションを開始します。

バッファー処理されたトレース セッションでは、トレース メッセージはトレース バッファーに保持されます。 トレース コンシューマーに送信されたり、トレース ログに記録されたりしません。

-cir MaxFileSize
イベント トレース ログ (.etl) ファイルの循環ログ (ファイルの末尾で、最も古いメッセージに新しいメッセージを記録する) を指定します。 MaxFileSize は、ファイルの最大サイズを MB 単位で指定します。 MaxFileSize 値がない場合、このパラメーターは無視されます。

既定では、ファイル サイズ制限のないシーケンシャル ログです。

-cm
レジストリ (Configuration Manager) アクセスのトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-critsec
プライベート トレース セッション内のプロセスの重要なセクション イベントをトレースします。 トレース用にインストルメント化されていないユーザー モード プロセスでも、クリティカル セクション プロセス ロガーを開始できます。

プロセスを指定するには、-pids を使用します。 -critsec-guid を使用しないでください。 システムは、クリティカル セクション トレース用のカスタム GUID (CritSecGuid) を定義します。 同じコマンドで -heap-critsec を使用することはできません。

-dpcisr
遅延プロシージャ 呼び出し (DPC)、割り込みサービス要求 (ISR)、イメージ読み込みイベント (-img)、およびカーネル内のコンテキスト スイッチのトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

このオプションは、Windows Vista 用 Windows Driver Kit に含まれている Tracelog のバージョン以降のバージョンの WDK でのみサポートされます。 このオプションは、 –dpcisr オプションは、-eflag オプションと一緒に使用することはできません。

-dpcisr-UsePerfCounter パラメーター を使用します。 このパラメーターは、イベントごとに一意のタイム スタンプを提供します。Tracerpt は、DPC/ISR イベントの書式設定と解釈に使用されるツールです。 これらのイベントの解釈と書式設定については、以下の「コメント」を参照してください。

-eflag n [フラグ...]
NT カーネル ロガー トレース セッションの追加フラグを使用してカーネル イベントを有効にします。特に、DPC、ISR、およびコンテキスト 切り替えイベントのトレースを有効にするフラグです。 –-eflag オプションは、-depcisr オプションと一緒に使用することはできません。

-enableproperty n
説明とサポートされる値については、EnableTraceEx2 のパラメーターとして渡される EnableParameters 構造体の EnabledProperties の説明を参照してください。

-EventIdFilter {-in|-out} **** n **** id1 id2 ...
n 個のイベント ID を持つイベント ID フィルターを指定します (最大 64 個のイベント ID が許可されます)。 このオプションは、Windows 8.1 以降で使用できます。

-ExeFilter Executable_file [; Executable_file ...]
フィルター処理する実行可能ファイルの名前を指定します。 ファイル のリストを指定できます。 セミコロンを使用してファイルの名前を区切ります。 一覧にないファイルは除外されます。 このオプションは、Windows 8.1 以降で使用できます。

-f [LogFile]
トレース ログ セッションを開始します。 LogFile は、イベント トレース ログ (.etl) ファイルのパス (省略可能) とファイル名を指定します。 既定値は C:\LogFile.etl です。 リモート コンピューターにファイルを配置するには、パスにコンピューター名または IP アドレスを含めます。

-f-rt を同時にを使用すると、トレース メッセージはコンシューマーとイベント トレース ログ ファイルに送信されます。 -buffering-rt または -f を使用することはできません。

-fio
ファイル I/O イベントのトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

フラグ

Note

フラグはキーワードに置き換えられます。 WPP プロバイダーを有効にする場合を除き、-matchanykw を使用します。

トレース セッション内のプロバイダートレース フラグを指定します。 フラグ値は、トレース プロバイダーが生成するイベントを決定します。

フラグ は、トレース プロバイダーで定義されているフラグ値を 10 進数または 16 進数の形式で表します。 既定値は0です。 0x01000000 から 0xFF000000 までの値は、将来使用するために予約されています。

フラグ値の意味は、各トレース プロバイダーによって個別に決定されます。 通常、フラグは、段階的に詳細になるレポート レベルを表します。

tracelog -start コマンドで指定されたフラグ値は、トレース セッション内のすべてのトレース プロバイダーに適用されます。 トレース プロバイダーごとに異なるフラグを設定するには、tracelog -enable を使用します。

-ft FlushTime
トレース メッセージ バッファーを強制的にフラッシュする頻度を秒単位で指定します。 最小フラッシュ時間は 1 秒です。 既定値は 0 (強制フラッシュなし) です。

この強制フラッシュは、トレース メッセージ バッファーがいっぱいになったときやトレース セッションが停止するたびに自動的に行われるフラッシュに加えて行われます。

tracelog -flush コマンドを参照してください。

-guid {#GUID | file | *name}
指定されたトレース プロバイダーを有効にします。

ファイルが指定されている場合、Tracelog はファイルで指定されたすべてのプロバイダーのトレースを有効にします。 ファイルは次のように書式設定する必要があります。

; comment line
guid1;matchanykeyword;level
guid2;matchanykeyword;level

プロバイダー GUID が指定されている場合、GUID には番号記号 (#) を付ける必要があります。

プロバイダー名を指定する場合は、名前の前にアスタリスク (*) を付ける必要があります。 名前は、.NET's Event Source と同じアルゴリズムを使用して GUID に変換されます。 この GUID は、プロバイダーを有効にするために使用されます。

このパラメーターを省略した場合、トレース プロバイダーはトレース セッションにメッセージを送信しません。 ただし、トレース セッションを開始した後は、tracelog -enable コマンドを使用して、セッションに対して 1 つ以上のトレース プロバイダーを有効にすることができます。

-gs
トレース メッセージごとにグローバル シーケンス番号を生成します。

グローバル シーケンス番号は、コンピューター上のすべてのトレース セッションで一意です。 既定では、シーケンス番号はありません。

このパラメーターは、NT カーネル ロガー トレース セッションでは無効です。

ヒープ
ユーザー モード プロセスのヒープ メモリ イベントをトレースします。 トレース用にインストルメント化されていないユーザー モード プロセスでも、ヒープ プロセス ロガーを開始できます。

プロセスを指定するには、-pids を使用します。 -heap-guid を使用しないでください。 システムは、ヒープ メモリ トレース用のカスタム GUID (HeapGuid) を定義します。 同じコマンドで -heap-critsec を使用することはできません。

-hf
ハード ページ フォールト (ディスク アクセスを解決する必要があるページ フォールト) のトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-hybridshutdown {stop|persist}
ハイブリッド シャットダウン ロガーの動作を制御します。 このオプションは、Windows 8 以降で使用できます。

stop を実行すると、システムがハイブリッド シャットダウンを実行するとセッションが停止します。 persist を実行すると、システムがハイブリッド シャットダウンから再び起動した後もセッションが続行されます。

-img
イメージ読み込みイベントのトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

非依存

Note

独立モードは、すべてのトレース セッションで有効にする必要があります。

トレース セッションで独立モードを有効にします。 独立モードを使用すると、セッションは、他の非独立モード セッションが削除したイベントを収集できます。 このオプションは、Windows 8.1 以降で使用できます。

-kb
ログ ファイルのサイズにはキロバイト (KB) を使用します。 既定の容量は 5 メガバイト (MB) です。

-kd
トレース メッセージは、KD または Windbg の接続されている方にリダイレクトします。 また、このパラメーターは、トレース バッファー サイズをデバッガーの最大バッファー サイズである 3 KB (キロバイト)に設定し、コマンド内の -b パラメーターを無視します。

-kd を指定して Tracelog コマンドを送信するときに、デバッガーが実行されている必要があります。 それ以外の場合、Tracelog は応答を停止します。

カーネル デバッガーでのトレース メッセージの表示については、「コメント」を参照してください。

-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
カーネル イベントに対して LBR トレースを構成します。

カーネル イベントの一覧には -eflag ヘルプを使用します。

レベル n
トレース セッション内のプロバイダーのトレース レベルを指定します。 レベルは、トレース プロバイダーが生成するイベントを決定します。

Level は、レベル値を 10 進数または 16 進数の形式で表します。 既定値は0です。

レベル 値の意味は、各トレース プロバイダーによって個別に決定されます。 通常、トレース レベルはイベントの重大度 (情報、警告、またはエラー) を表します。

tracelog -start コマンドで指定されたレベル値は、トレース セッション内のすべてのトレース プロバイダーに適用されます。 トレース プロバイダーごとに異なるレベルを設定するには、tracelog -enable を使用します。

-lowcapacity

Note

このオプションは、メモリ コストを削減するために必要でない限り使用しないでください。 このオプションを使用すると、各イベントのログ記録が遅くなります。

一度に 1 つのバッファーを使用して、複数のプロセッサで生成されたイベントを収集します。 このオプションでは、EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING ログ モードが選択されます。 詳細については、Windows SDK を参照してください。

-ls
トレース メッセージごとにローカル シーケンス番号を生成します。

ローカル シーケンス番号は、トレース セッション内で一意です。 既定では、シーケンス番号はありません。

このパラメーターは、NT カーネル ロガー トレース セッションでは無効です。

-max NumberOfBuffers
Tracelog がトレース セッションに割り当てるバッファーの最大数を指定します。 既定値は、プロセッサの数、物理メモリの量、使用中のオペレーティング システムによって決まります。

-matchallkw n
プロバイダーが書き込むイベントのカテゴリを制限し、-matchanykw オプションと組み合わせて使用する MatchAllKeyWord ビットマスクを指定します。

このビットマスクは省略可能です。 イベントのキーワードが -matchanykw オプションで指定された条件を満たしている場合、プロバイダーはイベントのキーワードにこのマスク内のすべてのビットが存在する場合にのみ、イベントを書き込みます。 -matchanykw が 0 の場合、このマスクは使用されません。

Tracelog は、EnableTraceEx2 関数呼び出しの MatchAllKeyWord パラメーターの値 n を渡します。 詳細については、Windows SDK を参照してください。

-matchanykw n
プロバイダーが書き込むイベントのカテゴリを決定する MatchAnyKeyword ビットマスクを指定します。

イベントのキーワードビットのいずれかが、このマスクに設定されているビットのいずれかと一致する場合、プロバイダーはイベントを書き込みます。 Tracelog は、EnableTraceEx2 関数呼び出しの MatchAnyKeyWord パラメーターの値 n を渡します。 詳細については、Windows SDK を参照してください。

NumberOfBuffers
トレース メッセージを格納するために最初に割り当てられるバッファーの数を指定します。 バッファーがいっぱいになると、Tracelog は最大値に達するまで、より多くのバッファーを割り当てます。 既定値は、プロセッサの数、物理メモリの量、使用中のオペレーティング システムによって決まります。

-newfile MaxFileSize
既存のファイルが MaxFileSize に達するたびに、新しいイベント トレース ログ (.etl) ファイルを作成します。 MaxFileSize は、各ログ ファイルの最大サイズを MB 単位で指定します。 MaxFileSize 値がない場合、このパラメーターは無視されます。

-newfile を使用する場合は、-f LogFile パラメーターも使用する必要があります。また、LogFile の値は、10 進数のパターンを示すために%dを含む名前である必要があります (例: trace%d.etl)。 それ以外の場合、コマンドは ERROR_INVALID_NAME で失敗します。 Windows は、新しいファイルを作成するたびに、ファイル名の 10 進値をインクリメントします。

このパラメーターは、事前割り当て (-prealloc)、循環ログ (-cir)、NT カーネル ロガー セッション、またはプライベート トレース セッションでは無効です。

-nodisk
物理ディスク I/O イベントのトレースを無効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-nonet
TCP/IP およびユーザー データグラム プロトコル (UDP) イベントのトレースを無効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-noprocess
各プロセスの開始と終了のトレースを無効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-nothread
各スレッドの開始と終了のトレースを無効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

ページ
トレース メッセージ バッファーにページング可能なメモリを使用します。 既定では、イベント トレースではバッファーに非ページ メモリが使用されます。

ページングできないメモリを必要とするプロバイダーは、ページング可能なメモリを使用するセッションにイベントをログに記録することはできません。

-pids #PIDS PID [PID...]
ヒープ メモリまたはクリティカル セクション トレース セッションが実行されるユーザー モード プロセスを指定します。 -heap または -critsec でのみ有効です。

#PIDs は、このパラメーターでリストされているプロセス ID の数を指定します。 PID はプロセス識別子を表します。 このパラメーターでは、最大 10 個の PID を指定できます。

プロバイダーが複数のプロセスで実行されている場合 (1 つのプログラムが複数のプロセスを作成する場合など) に、複数の PID を一覧表示します。

-PidFilter n pid1 pid2 ...
Pid を n 個指定した Pid フィルターを指定します (最大 8 個まで使用できます)。 このオプションは、Windows 8.1 以降で使用できます。

-pf
すべてのページ フォールトのトレースを有効にします。 このパラメーターは、NT カーネル ロガー トレース セッションに対してのみ有効です。

-PkgIdFilter Package Full Name [ **;**Package Full Name...]
パッケージ ID フィルターを指定します。 パッケージ ファイルの一覧を指定できます。 セミコロンを使用してファイルの名前を区切ります。

-PkgAppIdFilter PRAID [**;**PRAID...]
パッケージ相対アプリ識別子 (PRAID) フィルターを指定します。 PRAID は、パッケージ内におけるアプリケーションの一意の識別子です。 複数の PRAID を指定できます。 セミコロンを使用して ID を分離します。 このオプションは、Windows 8.1 以降の UWP アプリで使用できます。

-Pmc Ctr1,Ctr2,...:Name+Name+...
指定されたカーネル イベントに対してパフォーマンス モニター カウンター (PMC) サンプリングを構成します。 このオプションは、Windows 8 以降で使用できます。

カウンターの一覧には -ProfileSource ヘルプを使用します。 カーネル イベントの一覧には -eflag ヘルプを使用します。

-prealloc
セッションを開始する前に、.etl ファイルの領域を予約します。

このパラメーターには、MaxFileSize-seq または -cir が必要です。 -newfile では無効です。

-ProfileSource src
使用するプロファイル ソースを構成します。 ソースの一覧については、コマンド tracelog -ProfileSource Help を使用します。 このオプションは、Windows 8 以降で使用できます。

このオプションは、Windows Server 8 以降のバージョンの Windows でのみ使用できます。

-rt
リアルタイム トレース セッションを開始します。 (トレース ログ セッション (-f) が既定値です)。

-f-rt を同時にを使用すると、トレース メッセージはトレース コンシューマーとイベント トレース ログ ファイルに送信されます。 -buffering-rt または -f を使用することはできません。 詳しくは、「トレース セッション」をご覧ください。

-secure
セキュア モードでトレースを有効にします。 このオプションでは、EVENT_TRACE_Standard Edition CURE_MODEログ モードが選択されます。 セッションにイベントをログに記録できるユーザーを、TRACELOG_LOG_EVENT アクセス許可を持つユーザーに制限します。

-sessionguid
自動ロガー セッション GUID レジストリ値を指定します。

-SetProfInt n **** src

重要

プロファイリング間隔を変更することはお勧めしません。

指定したソースのプロファイリング間隔 (n) を構成します。n は 100 ns 単位です。 既定値は 10000 です (1 ミリ秒に相当)。 このオプションは、Windows 8 以降で使用できます。

-seq MaxFileSize
イベント トレース ログ (.etl) ファイルへの順次ログ記録 (ファイルの末尾でイベントの記録を停止) を指定します。 MaxFileSize は、ファイルの最大サイズを MB 単位で指定します。 MaxFileSize 値がない場合、このパラメーターは無視されます。

シーケンシャル ログは既定ですが、このパラメーターを使用して最大ファイル サイズを設定したり、-prealloc を使用 したりできます。 このパラメーターがないと、ファイル サイズの制限はありません。

-sourceguid SourceGuid
SourceId パラメーターとして EnableTraceEx 関数または EnableTraceEx2 関数に渡される GUID を指定します。 SourceId は、プロバイダーを有効にしたセッションを識別します。

-stackwalk [Events]
スタックを収集するカーネル イベントを指定します。 カーネル イベントの一覧には -eflag ヘルプを使用します。 このパラメーターは、NT カーネル ロガーまたはシステム ロガー トレース セッションでのみ有効です。

-StackWalkFilter {-in|-out}nid1 id2 ...
n 個のイベント ID を持つイベント ID フィルターを指定します (最大 64 個のイベント ID が許可されます)。 このオプションは、Windows 8.1 以降で使用できます。

-systemlogger
ロガーは SystemTraceProvider イベントを受信できます。 SystemTraceProvider セッションの構成と開始を参照してください。 このオプションは、Windows 8 以降で使用できます。

um
プライベート トレース セッションを指定します。このパラメーターは、プライベート トレース セッションに必要です。

-UseCPUCycle
プロセッサの頻度 ("CPU ティック" とも呼ばれます) を使用して、各トレース メッセージの時間を測定します。

このタイマーは、可能な限り高い解像度を提供しますが、非常に機密性が高いため、特に電源マネージド システムやマルチプロセッサ コンピューターではエラーが発生しやすくなります。 たとえば、Arm プロセッサを搭載したコンピューターでこのタイマーを指定すると、順序が誤ったイベントが発生する可能性があります。 代わりに、 高解像度トレースには -UsePerfCounter をお勧めします。

-UsePerfCounter は、イベント トレースの既定のタイマーです。

-UsePerfCounter
各トレース メッセージを使用して、低解像度のシステム時間ではなく、高解像度パフォーマンス カウンター クロックの値を記録します。

パフォーマンス カウンターのクロックは約 100 ナノ秒単位でカウントされるため、イベントごとに一意のタイム スタンプが提供されます。

-UsePerfCounter は、イベント トレースの既定のタイマーです。

-UseSystemTime
各トレース メッセージを使用して、高解像度のパフォーマンス カウンター クロック時間ではなく、システム時刻を記録します。 システム タイマーの解像度は 10 ミリ秒 (パフォーマンス カウンター クロックの場合は 100 ナノ秒) であるため、複数のイベントのシステム時間を同じにすることができます。

-UsePerfCounter は、イベント トレースの既定のタイマーです。

-? | ヘルプ | -?
使用方法に関する情報を表示します。

コメント

次のコメントは、いくつかの Tracelog コマンドに適用されます。

構文エラー

Tracelog では、変更できない設定を更新しようとした場合など、正しくない構文の組み合わせすべてに関するエラーは表示されません。 代わりに、コマンドの無効な部分が無視され、成功メッセージが表示されます。

システム ロガー

Windows では多くの目的でトレース セッションが使用され、その一部は適切な操作に不可欠です。 開始しなかったトレース セッションを停止しないでください。

Enumguid

tracelog -start または tracelog -enable コマンドが成功したかどうかを確認するには、tracelog -enumguid コマンドを使用してプロバイダーが有効になっているかどうかを判断し、tracelog -l (List) コマンドを使用してトレース セッションのプロパティを調べます。

リアルタイム セッションとログ セッション

1 つのトレース セッションには、リアルタイム トレース セッションとトレース ログ セッションの両方を指定できます。 同じコマンドに -rt (リアルタイム) パラメーターと -f (ログ セッション) パラメーターを含める場合、システムはバッファーの内容をログとトレース コンシューマーの両方に送信します。 ただし、トレース ログ セッションにリアルタイム メッセージ配信を追加する前に、 tracelog -flush コマンドを使用してバッファーを フラッシュ する必要があります。

リアルタイム セッション (-rt) を開始し、ログ セッション (-f) に更新すると、新しいトレース メッセージはログ ファイルにのみ送信されます。 ログ ファイルをリアルタイム セッションに追加するには、tracelog -update コマンドで -rt-f の両方を使用します。

ログ セッション (-f) を開始する場合は、リアルタイム セッション (-rt) に更新できますが、トレース コンシューマーに加えて、メッセージは引き続きトレース ログに送信されます。 更新してセッションからログを削除することはできません。

リアルタイムのみのセッションからトレース メッセージを表示または保存するには、Tracefmt などのトレース コンシューマーを使用するか、トレース コントローラー (Tracelog など) とトレース コンシューマーの両方である TraceView を使用することもできます。 Tracefmt を使用する場合は、Tracefmt コマンドに -rt パラメーターを含めるようにしてください。

フラグとレベル

フラグまたはレベルが特定の値に設定されていない限り、ほとんどのトレース プロバイダーはトレース メッセージを生成しません。 プロバイダーは、トレース対象を制御するためにフラグまたはレベルを使用します。 イベント トレース ログ ファイルが空の場合は、トレース プロバイダーのフラグとレベルを確認します。

トレース メッセージが常に生成されるようにするには、次の手順を実行します。

  1. すべてのフラグ設定を有効にするには、 flags パラメーターを 0xFFFFFFFF に設定します。

  2. すべてのレベル設定を有効にするには、 levels パラメーターを 255 に設定します。

-eflag パラメーター

Tracelog には、NT カーネル ロガー トレース セッションの追加フラグ (特に、DPC、ISR、コンテキスト スイッチ イベントのトレースを有効にするフラグ) を有効にするように設計された -eflag (拡張フラグ) パラメーターがあります。 tracelog -start コマンドに -dpcisr パラメーターが含まれるようになったため、-eflag パラメーターの使用は不要になり、推奨されません。

古いパラメーター

以前のバージョンの Tracelog では、tracelog -start コマンドで -rt b パラメーターの組み合わせがサポートされました。 この組み合わせは -buffering パラメーターに置き換えられ、有効ではなくなりました。

すべてのトレース セッションを停止するとシステムが不安定になる可能性があるため、-x パラメーターが削除されました。

-disableex パラメーター セットは削除されました。 代わりに -disable を使用してください。

NT カーネル ロガー

NT カーネル ロガーを使用してトレース セッションを開始するには、tracelog -start コマンドからセッション名を省略し、-guid パラメーターを使用してプロバイダー GUID ファイルを指定しないでください。 "NT カーネル ロガー" は既定のセッション名です。

セッション名が省略されている場合、または "NT カーネル ロガー" の場合は、-guid パラメーターを使用して SystemTraceControlGUID 以外の GUID (NT カーネル ロガー トレース セッションの制御 GUID) を指定した場合でも、システムは NT カーネル ロガー トレース セッションを開始します。 別の GUID を指定した場合、システムはエラー ("システム ロガーはアプリケーション GUID を受け入れない") を返しますが、NT カーネル ロガー トレース セッションを開始します。

既定では、Tracelog は NT カーネル ロガー トレース セッションを開始すると、プロセス、スレッド、物理ディスク I/O、TCP/IP イベントのトレースを有効にしますが、パラメーターを使用してこれらのイベントのトレースを無効にし、他のイベントのトレースを有効にすることができます。

DPC/ISR イベント

Tracerpt はシステム パフォーマンス カウンターのクロック時間をタイム スタンプとして使用するため、トレース セッションを開始するときに Tracelog -UsePerfCounter パラメーターを使用します。

DPC イベントと ISR イベントは特別なインストルメンテーションによって収集されるため、Tracelog に 表示されるテーブルの [トレーシング有効] トレース 行には表示されず、コマンドを確認します。

詳細については、「例 15: DPC/ISR 時間の測定」を参照してください。