若要搭配 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 (Open Source File) 命令透過 SrcSrv 開啟新的原始程式檔,則必須包含 -m Address 參數。
為了協助從先前所列調試程式以外的工具使用 SrcSrv,DbgHelp API 可透過 SymGetSourceFile 函式來存取 SrcSrv 功能。 若要擷取要擷取的來源檔名,請呼叫 SymEnumSourceFiles 或 SymGetLineFromAddr64 函式。 如需 DbgHelp API 的詳細資訊,請參閱 dbghelp.chm 文件,您可以在 Windows 偵錯工具的安裝目錄中的 sdk/help 子目錄中找到,或參閱偵錯幫助庫。
使用 AgeStore 減少快取大小
在偵錯會話結束之後 ,SrcSrv 所下載的任何來源檔案都會保留在硬碟上。 若要控制來源快取的大小,AgeStore 工具可用來刪除早於指定日期的快取檔案,或減少快取低於指定大小的內容。 如需詳細資訊,請參閱 AgeStore。