讓Visual Studio載入Symbol(pdb)檔案

來源:互聯網
上載者:User

標籤:search   csdn   相對   from   ram   速度   crt   box   nbsp   

讓Visual Studio載入Symbol(pdb)檔案

 

 

Visual Studio載入Symbolpdb)檔案

 

 

 

在VC編譯工程的編譯串連階段,會產生Symbol檔案,也就是常說的 pdb 檔案。pdb 的全稱為 program database,在 MSDN 中的解釋為,pdb 檔案是一個在編譯和連結階段產生的,包含了類型和偵錯符號資訊的二進位檔案。pdb 檔案中包含了各個函數的符號表,也是進行 WinDbg 調試必不可少的檔案。

 

既然 pdb 檔案是給調試器使用的,那麼 Visual Studio 調試器也就可以使用之。通過如下設定,Visual Studio 便可以在調試過程中載入 pdb 檔案了。

 

Tools --> Options --> Debugging

 

在“Symbol file (.pdb) locations:”下面的控制項中輸入微軟預設 pdb 檔案的下載路徑“http://msdl.microsoft.com/download/symbols”。

 

在“Cache symbols from symbol servers to this directory:”下的編輯框中輸入本地儲存路徑,如:D:/WinSymbols/MsDownSymbols。

 

 

 

下面兩個 CheckBox 的意思分別為:

 

“Search the above locations only when symbols are loaded manually”。

 

調試器僅僅載入手動載入的 Symbol。勾上此選項,調試速度會更快,但 pdb 載入相對較少,調試資訊較少,建議不勾選。

 

 

 

“Load symbols using the updated settings when the dialog is closed”

 

對話方塊關閉後,立刻載入符號表。勾上此選項可以立刻看到效果,調試速度當然會稍微慢一點,建議勾選。

 

 

 

點擊 OK 關閉對話方塊,設定便生效了。

 

 

 

 

 

 

 

 

 

 

 

 

設定過了,當然要看看效果啦。

 

我們先看看正常情況下 CallStack 的狀態,建立一個普通 Win32 程式,在InitInstance入口下個斷點,F5開啟調試,在 CallStack 視窗如下顯示: 

 

 

 

 

 

    我們可以看到,在最下面兩行中,資訊是灰掉的,kernel32.dll中那個函數調用了我們的wWinMainCRTStartup也看不到,進程最開始由哪個函數建立也看不到。

 

    現在看看設定了 Symbol 時 CallStack 的狀態,建立一個普通 Win32 程式,在InitInstance入口下個斷點,F5開啟調試,在 CallStack 視窗如下顯示: 

 

 

 

 

 

    我們可以看到,程式是由kernel32.dll中的匯出函數“_BaseProcessStart”開始的,_BaseProcessStart調用了我們的wWinMainCRTStartup函數,然後程式就運行起來了。

 

當然設定 Symbol 的用處遠遠不止這些,其餘的就等您慢慢發現。

 

 

 

註:設定 Symbol 之後,調試速度會慢下來,如果無需知道系統函數是如何調用的,建議調試時不設定 Symbol。 

 

讓Visual Studio載入Symbol(pdb)檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.