1. 程式人生 > >windbg 出現重復的星星框提示時

windbg 出現重復的星星框提示時

dex help 存在 選項設置 get reload 測試 port .exe

!sym noisy

.reload

符號驗證:

上面講到.reload的時候,我們說過,符號文件會出現不匹配的情況。這是很有可能的,程序員在後期測試的時候可能會將工程多次編譯,為了維護多個版本而使得自己也被搞混。可以使用下面的命令驗證一個模塊的符號文件:

  • !chksym <模塊名> [符號名]

加載選項:!sym

有兩類符號加載選項。第一類是Noisy/Quiet,Noisy選項將打印符號加載的詳細信息,Quiet選項則忽略這些信息。第二類是Prompts/Prompts off,即是否允許執行提示(Prompts)對話框。

一般都是在調用.reload 命令之前,執行加載選項命令,以見立竿見影之效。

所謂Noisy是吵鬧的意思,調試器在搜索、加載符號的時候,會顯示更多與搜索有關的信息。而安靜模式下,則不會顯示這些信息。不管吵鬧與否,都不會影響到最終的搜索、加載結果。

當從網絡上下載符號文件的時候,可能會碰到網絡服務器要求客戶進行安全認證的情況,如果開啟Prompts選項,則彈出認證對話框,讓用戶輸入認證信息;否則,不彈出對話框,並且不會下載符號文件。

不加任何參數的情況下,顯示當前加載選項設置,下面的清單表明當前的設置為Quite及Prompts模式:

lkd> !sym
!sym <noisy/quiet - prompts/prompts off> - quiet mode - symbol prompts on


1: kd> .reload
SYMSRV: BYINDEX: 0x47
d:\symbols*http://msdl.microsoft.com/download/symbols
ntoskrnl.exe
59029C7C850000
SYMSRV: UNC: d:\symbols\ntoskrnl.exe\59029C7C850000\ntoskrnl.exe - path not found
SYMSRV: UNC: d:\symbols\ntoskrnl.exe\59029C7C850000\ntoskrnl.ex_ - path not found

SYMSRV: HTTPGET: /download/symbols/ntoskrnl.exe/59029C7C850000/ntoskrnl.exe
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND

符號庫先從ntoskrnl.exe 這個文件夾查找ntoskrnl 差找不到,進行聯網查找.結果也沒查找到.

換了好幾個文件夾後,才用了正確的pdp 後綴的文件查找那個ntoskrnl.exe

  3C77A20382CE4024A425C6A53F4B167F1    //這個文件目錄在symbols \ntkrnlmp.pdb  不存在,我試圖把存在的文件夾改成與這個相同,結果如下報錯,因為上邊 原文件夾下有程序需要的文件,
SYMSRV: PATH: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\ntkrnlmp.pdb 
SYMSRV: RESULT:
0x00000000 DBGHELP: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\ntkrnlmp.pdb - mismatched pdb DBGHELP: ntkrnlmp.pdb - file not found DBGHELP: Couldnt load mismatched pdb for ntkrnlmp.exe *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrnlmp.exe - DBGHELP: nt - export symbols Loading Kernel Symbols

第二次運行reload 竟然上邊這步成功了.

 3C77A20382CE4024A425C6A53F4B167F1
SYMSRV:  UNC: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\ntkrnlmp.pdb - path not found
SYMSRV:  UNC: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\ntkrnlmp.pd_ - path not found
SYMSRV:  UNC: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\file.ptr - path not found
SYMSRV:  HTTPGET: /download/symbols/ntkrnlmp.pdb/3C77A20382CE4024A425C6A53F4B167F1/ntkrnlmp.pdb
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/ntkrnlmp.pdb/3C77A20382CE4024A425C6A53F4B167F1/ntkrnlmp.pd_
SYMSRV:  HttpQueryInfo: 801900c8 - HTTP_STATUS_OK
SYMSRV:  ntkrnlmp.pdb from http://msdl.microsoft.com/download/symbols: 1266777 bytes - copied         
SYMSRV:  PATH: d:\symbols\ntkrnlmp.pdb\3C77A20382CE4024A425C6A53F4B167F1\ntkrnlmp.pdb
SYMSRV:  RESULT: 0x00000000

windbg 出現重復的星星框提示時