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 設置好符號表路徑後 自動解決問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章