windbg符號表問題


1. 首先設置符號表路徑

在系統環境變量添加一個 _NT_SYMBOL_PATH 值為srv*d:\symbols*http://msdl.microsoft.com/download/symbols

這樣IDA, windbg, vs 都會自動到該目錄加載符號表. 

對於這個路徑d:\symbols, 可以自定義任何位置, 最好不要用離線符號表,因為你根本就找不到對應的系統版本,而且

對於win10等仍然在更新的系統,符號表過一段時間就會有所變化,到時又要重新下載一個多G的符號表,反而麻煩.

 

2.所有不同版本操作系統的符號可以放在同一目錄d:\symbols下.

 為什么?

本人經過測試,同一個文件的符號表會在該目標目錄下生成以hash值命名的不同文件夾,例如ntkrnlmp.pdb:

對於這2個文件夾,一個是本機win10的,還有一個是win7 64位系統的, 所以如果有xp的,win8的, 甚至不同更新版本的win10的這個ntkrnlmp.pdb

符號表,會同時有多個文件夾對應不同的版本,所以不需要擔心沖突.

3.設置好符號表路徑還是出錯

解決方案:

(1)首先網絡能通, 直接在瀏覽器訪問http://msdl.microsoft.com/download/symbols 看能不能打開

(2) 對於被調試目標,例如xp和win7 64位系統, 應該使用不同版本的windbg, 例如xp可以使用6.X版本的32位的windbg來進行內核調試

而win7 64位最好使用64位的 10.X版本的windbg調試. 否則 如果用32位的6.x版本調試win7 64位就會出現 在存儲符號表的目錄中下載了符號表

但是只有1KB大小,顯然是錯的, 當時這個問題糾結了我很久, 后來換了64位的 10.X版本的windbg 設置好符號表路徑后 自動解決問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM