VSS でのトレース ツールの使用

VSS インフラストラクチャのトレース情報を収集するには、VssTrace ツール、Logman ツール、または Tracelog ツールを使用できます。 VssTrace は Microsoft Windows ソフトウェア開発キット (SDK) で使用でき、Windows 7 以降のバージョンの Windows オペレーティング システムで VSS アプリケーションをトレースするために使用できます。 Logman は、トレース イベントとパフォーマンス カウンターのトレース コントローラーです。また、Windows 7 以降のバージョンの Windows オペレーティング システムで、VSS アプリケーションをトレースするためにも使用できます。 Tracelog は Windows Driver Kit (WDK) に含まれています。

自動システム回復 (ASR) でトレース ツールを使用するには、「ASR アプリケーションでのトレース ツールの使用」をご覧ください。

Note

VssTrace、Logman、Tracelog には、すべて管理者特権が必要です。

 

各ツールについては、次のセクションを参照してください。

VssTrace の使用

コマンド ラインから VssTrace ツールを実行するには、次の構文を使用します。

vsstrace command-line-options

VssTrace ツールの簡潔なコマンド ライン ヘルプを表示するには、次の構文を使用します。

vsstrace -help

VssTrace ツールの詳細なコマンド ライン ヘルプを表示するには、次の構文を使用します。

vsstrace -help all

VssTrace コマンド ライン オプション

VssTrace ツールでは、次のコマンド ライン オプションを使用します。

-f Flags

Flags ビットマスクでフラグが指定されているモジュールを有効にします。 各フラグは VSS モジュールに対応します。 Flags が 0 の場合、モジュールは有効になっていません。 ほとんどのモジュールは既定で有効になっています。 このオプションは、**+**Module オプションと組み合わせることができます。 たとえば、vsstrace -f 0 +WRITER +COORD は、既定で有効になっているすべてのモジュールのトレースを無効にし、VSS ライターと VSS サービスのトレースを有効にします。 または、vsstrace +f 0xffff -COORD は、VSS サービスを除くすべてのモジュールのトレースを有効にします。

Note

-f オプションを **+**Module オプションと一緒に使用する場合は、-f を **+**Module オプションの前に配置する必要があります。

 

次の表に、使用可能な各モジュールのモジュール名とフラグを示します。

モジュール フラグ 既定で有効 トレースされる項目
EXCEPT 0x00000001 はい C++ 例外処理。
COORD 0x00000002 はい VSS サービス。VSS コーディネーターとも呼ばれます。
SWPRV 0x00000004 はい VSS システム シャドウ コピー プロバイダー サービス。
BUCOMP 0x00000008 はい VSS リクエスターとバックアップ メタデータの処理。
WRITER 0x00000010 はい VSS ライター操作と、Windows レジストリ ライターなどの VSS ホスト ライター実装。
VSSAPI 0x00000020 はい VSSAPI.DLL によってエクスポートされた VSS API のその他の関数。
HWDIAG 0x00000040 はい VSS ハードウェア プロバイダーのインフラストラクチャと操作。
ADMIN 0x00000080 はい VSSADMIN.EXE や DISKSHADOW.EXE などの VSS コマンド ライン ユーティリティ。
VSSUI 0x00000100 はい 共有フォルダーのシャドウ コピーの構成ユーザー インターフェイス (UI)。 UI は Windows Server オペレーティング システムでのみ使用できます。
TEST 0x00000200 はい 該当なし。 (このトレース モジュールは予約されています)。
IOCTL 0x00000400 はい VSS サービスが DeviceIoControl 関数を呼び出して開始した FSCTL および IOCTL 操作の詳細。
GEN 0x00000800 はい アロケーター、文字列クラス、レジストリおよびボリューム操作などの一般的な VSS ユーティリティ関数。
WRXML 0x00001000 いいえ ライター メタデータの XML 処理。 このモジュールは非常に高レベルのノイズを持っています。
VSSXML 0x00002000 いいえ XML 処理の基本クラス。 このモジュールは非常に高レベルのノイズを持っています。

 

**+**モジュール

Module によって指定されたモジュールを有効にします。 一度に複数のモジュールを有効にすることができます。 使用可能なモジュールを一覧表示するには、コマンド ライン プロンプトで「vsstrace –help modules」と入力します。

-モジュール

Module によって指定されたモジュールを無効にします。 使用可能なモジュールを一覧表示するには、コマンド ライン プロンプトで「vsstrace –help modules」と入力します。

+pid ProcessId

ProcessId によって指定されたプロセスを有効にします。 すべてのプロセスを有効にするには、ProcessId の値に "*" を使用します。 複数の pid オプションを一度に指定できます。 オプションの順序によって、有効または無効になっているプロセスが決まります。 たとえば、プロセス識別子が 0xe8c であるプロセスのみを有効にするには、vsstrace -pid * +pid 0xe8c を使用します。

-pid ProcessId

ProcessId によって指定されたプロセスを無効にします。 すべてのプロセスを無効にするには、ProcessId の値に "*" を使用します。 複数の pid オプションを一度に指定できます。 オプションの順序によって、有効または無効になっているプロセスが決まります。 たとえば、プロセス識別子が 0xe8c であるプロセスを除くすべてのプロセスを無効にするには、vsstrace -pid * +pid 0xe8c を使用します。

+tid ThreadId

ThreadId により指定されたスレッドを有効にします。 すべてのスレッドを有効にするには、ThreadId の値に "*" を使用します。 複数の tid オプションを一度に指定できます。 オプションの順序によって、有効または無効になっているスレッドが決まります。 たとえば、プロセス ID が 0x31a のスレッドのみ有効にするには、vsstrace -tid * +tid 0x31a を使用します。

-tid ThreadId

ThreadId により指定されたスレッドを無効にします。 すべてのスレッドを無効にするには、ThreadId の値に "*" を使用します。 複数の tid オプションを一度に指定できます。 オプションの順序によって、有効または無効になっているスレッドが決まります。 たとえば、プロセス ID が 0x31a であるスレッドを除くすべてのスレッドを無効にするには、vsstrace -tid * +tid 0x31a を使用します。

-l Level

Level によって指定されたトレース レベルを使用します。 レベルが高いほど、トレース出力は詳細になります。 各レベルには、下位レベルがすべて含まれます。 既定のレベルは 170 です。 以下のレベルが使用可能です。

Level トレース出力に含まれる情報
000 なし
020 致命的なエラー
030 ハンドルされない例外
040 エラー
050 アサーション
060 警告
080 例外処理
100 イベント ログ アクティビティ
120 全般情報
140 コード フロー
160 関数の開始と終了
170 関数の戻り値
180 関数のパラメーター (簡潔)
190 関数のパラメーター (詳細)
200 詳細情報レベル 1
210 詳細情報レベル 2
220 詳細情報レベル 3
230 高速コード レベル 1
240 高速コード レベル 2
250 高速コード レベル 3
255 すべて

 

+indent

各関数とサブ関数の境界で、書式設定されたトレース出力をインデントします。

-indent

書式設定されたトレース出力をインデントしないでください。

-etl EtlFile

EtlFile により指定された Logman 出力ファイルを読み取り可能なテキスト形式に変換します。

-o OutputFile

トレース情報を、OutputFile により指定された出力ファイルに保存します。 パフォーマンスを最大限に高めるには、シャドウ コピーに含まれていないボリュームに出力ファイルを配置する必要があります。

-help HelpOption

HelpOption により指定されたコマンド ライン ヘルプを表示します。 有効な HelpOption 値は、modulelevelsall です。 modules を指定すると、モジュールが一覧表示されます。 levels を指定すると、使用可能なレベルが一覧表示されます。 all を指定すると、詳細なヘルプが表示されます。 オプションを使用しない場合、簡潔なヘルプが表示されます。

Logman の使用

次の手順では、VSS アプリケーションで Logman を使用する方法について説明します。

VSS アプリケーションで Logman を使用するには

  1. トレースを開始するには、次のコマンドを使用します。

    logman start vss -o *x:\*vss.etl -ets -p {9138500e-3648-4edb-aa4c-859e9f7b7c38} 0xfff 170

    Note

    "x:\" は、トレース ログ ファイルを格納するディレクトリへのパスに置き換えてください。

     

  2. トレースを停止するには、次のコマンドを使用します。

    logman stop vss -ets

トレース ログ ファイルは *x:\*vss.etl です。

Logman ツールについて詳しくは、「Logman」をご覧ください。

Tracelog の使用

以下の手順では Tracelog の使用方法を説明します。

Tracelog を使用するには

  1. 次のテキストのみを含む、vss.ctl という名前のテキスト ファイルを作成します。

    9138500e-3648-4edb-aa4c-859e9f7b7c38 vss

  2. トレースを開始するには、次のコマンドを使用します。

    tracelog -start vss -f *x:\*vss.etl -guid vss.ctl -flag 0xff -level 0xaa

    Note

    "x:\" は、トレース ログ ファイルを格納するディレクトリへのパスに置き換えてください。

     

  3. トレースを停止するには、次のコマンドを使用します。

    tracelog -stop vss

トレース ログ ファイルは *x:\*vss.etl です。

Tracelog ツールについて詳しくは、「Tracelog」をご覧ください。