首页 > 代码库 > windbg 出现重复的星星框提示时

windbg 出现重复的星星框提示时

!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 出现重复的星星框提示时