ソース サーバーの使用

ソース サーバーを使用すると、デバッガーは現在のターゲットに一致するソース ファイルを自動的に取得できます。 ソース サーバーを使用するには、ビルド時にソース インデックスが作成され、そのソース ファイルの場所が PDB ファイルに埋め込まれているバイナリをデバッグする必要があります。

Windows 用デバッグ ツールには、ソース サーバー SrcSrv (Srcsrv.exe) が含まれています。

デバッガーでの SrcSrv の使用

SrcSrv は、WinDbg、KD、NTSD、または CDB と共に使用できます。

デバッガーで SrcSrv を使用するには、次のコマンドを入力してソース パスを srv* に設定します。

.srcfix

次のコマンドを入力すると、同じ結果を得ることができます。

.srcpath srv*

ソース パスを srv* に設定すると、ターゲット モジュールのシンボル ファイルで指定された場所からソース ファイルを取得するようデバッガーに指示が出ます。

SrcSrv を使用し、ソース パスにディレクトリの一覧も含める場合は、セミコロンを使用して、パス内のディレクトリから srv* を分離します。

次に例を示します。

.srcpath srv*;c:\someSourceCode 

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

次の例に示すように、.srcfix+ を使用して既存のソース パスに srv* を追加することもできます。

3: kd> .srcpath c:\mySource
Source search path is: c:\mySource
3: kd> .srcfix+
Source search path is: c:\mySource;SRV*

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

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

ソースのインデックスを作成する方法について、または独自のソース管理プロバイダー モジュールを作成する予定の場合は、SrcSrv を参照してください。

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

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