1. 程式人生 > >使用 Microsoft Symbol Server 獲取除錯符號檔案

使用 Microsoft Symbol Server 獲取除錯符號檔案

使用 Symbol Server 技術

Microsoft Symbol Server 是使用 Debugging Tools for Windows 軟體包附帶的 SymSrv 技術 (SymSrv.dll) 構建的。SymSrv 會生成本地符號快取記憶體,以進行快速、自動的符號解析。使用 Symbol Server 就像在符號路徑中使用相應的語法一樣簡單。通常,語法的格式如下:SRV*your local symbol folder*http://msdl.microsoft.com/download/symbols 其中 your local symbol folder 是任何用作符號目標位置的驅動器或共享。例如,要在 WinDbg 偵錯程式中設定符號路徑,請在該偵錯程式的命令視窗中鍵入以下命令:.sympath SRV*f:/localsymbols*http://msdl.microsoft.com/download/symbols
要獲取最新的 SymSrv 功能,必須安裝最新的除錯軟體包。要獲取 Debugging Tools for Windows 軟體包的最新版本,請訪問以下 Microsoft 網站:有關 Symbol Server 技術的更多資訊,請參閱隨 Debugging Tools for Windows 軟體包提供的 Debuggers.chm 幫助檔案。                   
回到頂端回到頂端

設定 _NT_SYMBOL_PATH 環境變數

如果您在 _NT_SYMBOL_PATH 環境變數中提供了正確的 symsrv 語法,常見的 Microsoft 除錯工具就會使用 SymSrv 技術。這些工具會自動包括您在該變數中提供為符號路徑的任何內容。您可以將該變數設定為系統變數或使用者環境變數。要從桌面上執行此操作,請右鍵單擊我的電腦
,然後單擊屬性。在高階選項卡上,單擊環境變數。您也可以在命令提示符下臨時設定該變數。如果採用此方法,通過命令提示符啟動的所有應用程式都將繼承該設定。例如:Set _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:/localsymbols*http://msdl.microsoft.com/download/symbols                   
回到頂端回到頂端

將 Microsoft Symbol Server 和 WinDbg 一起使用

要在 WinDbg 中使用 Symbol Server 網站,請按照下列步驟操作:                                                           
1.啟動 Windows 偵錯程式 (WinDbg.exe)。
2.檔案選單上,單擊符號檔案路徑
3.符號路徑框中,鍵入以下命令:            SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols            其中 your local folder for symbols 是在其中複製本地符號快取記憶體的資料夾。除錯符號將下載到此位置。注意:您可以指向計算機能達到的任意本地路徑或共享位置;此位置不必是計算機硬碟上的位置。
此外,您也可以在命令提示符下使用 .sympath 命令來設定符號路徑。您可以將 symsrv 語法和其他符號路徑組合在一起。例如,使用以下語法來指定兩個或更多個符號路徑:f:/BusObjSymbols;SRV*f:/localsymbols*http://msdl.microsoft.com/download/symbols該語法用分號來分隔符號路徑。當您開始除錯故障轉儲檔案或應用程式時,Windows 偵錯程式將檢查它載入的模組的符號資訊是否位於本地資料夾中。如果模組的符號資訊不在本地資料夾中,WinDbg 將嘗試從 Symbol Server 下載相應的符號檔案或檔案。如果您在具有不同檔案版本的計算機上除錯應用程式時使用相同的本地快取記憶體,則將下載不同版本的符號,並將其同第一批符號儲存在一起。SymStore 格式會按照映像的時間戳和大小(或校驗和)來儲存檔案。因此,來自不同產品版本的符號可以並行共存。(SymStore.exe 是 Debugging Tools for Windows 軟體包中生成符號伺服器的實用程式。有關更多資訊,請參閱產品文件。)由於下載符號檔案需要一些時間,因此請記住,當您第一次除錯應用程式時,偵錯程式可能看上去停止了響應(掛起)。這是因為必須下載系統 DLL 的大多數符號檔案(如 Ntdll.dll、Kernel32.dll 和其他檔案)。                   
回到頂端回到頂端

使用 SymChk.exe 實用工具下載符號

您可以使用 SymChk.exe 實用工具,驗證符號並以便捷、非侵入的方式生成本地符號快取記憶體。SymChk.exe 實用程式隨 Debugging Tools for Windows 軟體包提供。SymChk.exe 是一種命令列工具。您可能需要將 Debugging Tools for Windows 軟體包的資料夾新增到系統上的 PATH 環境變數,以便從任意命令提示符下訪問該工具。要使用 SymChk.exe 實用程式下載 Windows/System32 資料夾中所有元件的符號檔案,請使用以下命令列命令:symchk /r c:/windows/system32 /s SRV*c:/symbols/*http://msdl.microsoft.com/download/symbols在此示例中:                                       
“/r c:/windows/system32”查詢 System32 資料夾和所有子資料夾中的所有符號檔案。
“/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用於符號解析的符號路徑。在此例中,“c:/symbols”是將在其中從符號伺服器複製符號的本地資料夾。
要獲取 SymChk.exe 命令列選項的更多資訊,請在命令提示符下鍵入 symchk /?。其他選項包括指定正在執行的可執行檔案的名稱或程序 ID (PID) 的功能。