Share via


SrcSrv の使用

WinDbg、KD、NTSD、または CDB で SrcSrv を使用するには、Windows 用デバッグ ツール パッケージの最新バージョン (バージョン 6.3 以降) がインストールされていることを確認してください。 その後、テキスト srv* をソース パスに含め、ソース パスにあるディレクトリとはセミコロンで区切ります。

次に例を示します。

.srcpath srv*;c:\someSourceCode

前の例に示すようにソース パスが設定されている場合、デバッガーは最初に SrcSrv を使用して、ターゲット モジュールのシンボル ファイルで指定された場所からソース ファイルを取得します。 SrcSrv がソース ファイルを取得できない場合、デバッガーは c:\someSourceCode からソース ファイルを取得しようとします。 srv* がパスの最初の要素であるか、後で表示されるかに関係なく、デバッガーは常に SymSrv を使用してから、パスに一覧表示されている他のディレクトリを検索します。

ソース ファイルが SrcSrv によって取得された場合、そのファイルはデバッグ セッションの終了後もハード ドライブに残ります。 ソース ファイルは、ホーム ディレクトリの src サブディレクトリにローカルで格納されます (シンボル サーバーとは異なり、ソース サーバーは srv* 構文自体でローカル キャッシュを指定しません)。 ホーム ディレクトリは Windows 用デバッグ ツールのインストール ディレクトリに既定で設定されます。これを変更するには、!homedir 拡張機能を使用するか、DBGHELP_HOMEDIR 環境変数を設定します。 ホーム ディレクトリの src サブディレクトリがまだ存在しない場合は、作成されます。

SrcSrv のデバッグ

デバッガーからソース ファイルを抽出する際に何らかの問題が発生した場合は、コマンド ライン パラメーター -n を指定してデバッガーを起動し、実際のソース抽出コマンドとその出力を確認します。 !sym noisy コマンドも同様の目的で使用できますが、以前の抽出の試行で重要な情報を既に見逃している可能性があります。 これは、デバッガーがバージョン管理リポジトリへのアクセスを試みるものの、それが到達不能と判断して、ソースの取得を中止したためです。

ソース ファイルの取得

.open (ソース ファイルを開く) コマンドを使用し、SrcSrv を介して新しいソース ファイルを開く場合は、-m Address パラメーターを含める必要があります。

先に挙げたデバッガー以外のツールからも SrcSrv を使用しやすくするため、DbgHelp API では SymGetSourceFile 関数を通じて SrcSrv の機能にアクセスできるようになっています。 取得するソース ファイルの名前を取得するには、SymEnumSourceFiles または SymGetLineFromAddr64 関数を呼び出します。 DbgHelp API の詳細については、Windows 用デバッグ ツールのインストール ディレクトリの sdk/help サブディレクトリにある dbghelp.chm ドキュメントを参照するか、「デバッグ ヘルプ ライブラリ」を参照してください。

AgeStore を使用してキャッシュのサイズを小さくする

デバッグ セッションが終了すると、SrcSrv によってダウンロードされたすべてのソース ファイルがハード ドライブに保持されます。 ソース キャッシュのサイズを制御するために、AgeStore ツールを使用して、指定した日付より前のキャッシュ ファイルを削除したり、キャッシュの内容を指定したサイズより小さくしたりできます。 詳しくは、「AgeStore」をご覧ください。