读书人

windbg 看dump堆栈信息,该如何解决

发布时间: 2012-03-24 14:00:46 作者: rapoo

windbg 看dump堆栈信息
不知道大家有没有遇到过。

当一个程序报错之后,我们会生产一个dump文件。
但是通过windbg+对应程序的pdb的时候,总是不能很准确的定位到错误的位置。
而且调用堆栈的话很莫名其妙的,不知所云。

请问我该如何操作?

[解决办法]
可能是堆栈被破坏得太严重了。如果不是:
不要管pdb,直接用k命令看Call Stack上指明的地址处的汇编代码,然后在exe或dll里面直接搜对应的汇编代码出现的位置,……。

也可以不用WinDbg,在程序报错弹出的对话框上选取消,直接进入VS IDE,按Alt+7键打开Call Stack窗口
查看里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
之前可能要重装VS IDE或者设置注册表项
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="0"
"Debugger"="\"C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\msdev.exe\" -p %ld -e %ld"


[解决办法]
你的WinDBG什么版本,有个版本加载pdb好像是有问题的。
[解决办法]
符号文件是否匹配?
[解决办法]
可能是你 生成dump文件的方法有问题.

一般情况会起一个独立线程来做这个事情来避免更多的影响.

读书人网 >C++

热点推荐