次の方法で共有


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

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

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

Note

VssTrace、Logman、Tracelog はすべて管理者特権を必要とします。

 

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

VssTrace の使用

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

vsstracecommand-line-options

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

vsstrace -help

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

vsstrace -help all

VssTrace Command-Line オプション

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

-fフラグ

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

Note

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

 

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

モジュール フラグ 既定で有効 トレースされた項目
EXCEPT 0x00000001 はい C++ 例外処理。
座標 0x00000002 はい VSS サービス。VSS コーディネーターとも呼ばれます。
SWPRV 0x00000004 はい VSS システム シャドウ コピー プロバイダー サービス。
BUCOMP 0x00000008 はい VSS リクエスターとバックアップ メタデータの処理。
WRITER 0x00000010 はい WINDOWS レジストリ ライターなどの VSS ライター操作と 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 はい DeviceIoControl 関数を呼び出すことによって VSS サービスが開始した FSCTL および IOCTL 操作の詳細。
大将 0x00000800 はい アロケーター、文字列クラス、レジストリおよびボリューム操作などの一般的な VSS ユーティリティ関数。
WRXML 0x00001000 いいえ ライター メタデータの XML 処理。 このモジュールは非常に高いレベルのノイズを持っています。
VSSXML 0x00002000 いいえ XML 処理基底クラス。 このモジュールは非常に高いレベルのノイズを持っています。

 

**+**モジュール

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

-モジュール

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

+pidProcessId

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

-pidProcessId

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

+tidThreadId

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

-tidThreadId

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

-lLevel

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

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

 

+インデント

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

-インデント

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

-etlEtlFile

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

-oOutputFile

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

-helpHelpOption

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

Logman の使用

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

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

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

    logman start vss -o *x:\*vss.etl -ets -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」を参照してください。