0
点赞
收藏
分享

微信扫一扫

WinDbg分析dump文件

栖桐 2022-11-15 阅读 142

调试能力可以说是最重要,尤其对于C/C++程序员而言,更是如此!

用神器WinDbg调试Dump文件需要三样东西:

1.毋庸置疑,肯定是Dump文件咯

2.源代码,必须与编译可执行文件时的代码一致

3.PDB文件,编译时生成的符号文件,一定是要与可执行文件同时生成的!(即便源代码一致,重新生成的PDB文件也不行。)

1、设置符号路径(生成二进制文件时对应的PDB文件所在目录,版本要一致!多个二进制文件的pdb最好生在同一目录):

多个PDB的路径以英文分号(;)作为间隔,其中代码可能会使用到微软相关库的符号,可以在符号路径中添加微软符号服务器的路径(一般不用添加,调试内核程序的时候需要),如下:

srv*C:\symbols*http://msdl.microsoft.com/download/symbols
2、设置源码路径(项目的solution文件所在目录,多个项目可以加到一个solution里面):

3、用WinDbg打开dump文件(注意,要最后才打开dmp文件)

如果使用了微软符号服务器,那么要稍微多等半分钟左右 

4、执行命令: !analyze -v

此时WinDbg会分析出崩溃时的堆栈信息以及代码出错位置。


普通的Bug,通过以上操作再加上简单分析,应该就可以搞定了,下面讲一下更高级一些的操作:

1、查看崩溃时的变量值:

输入.ecxr;kbn得到崩溃的堆栈

 输入.frame  0 切到第0帧

 输入 dv 查看当前帧的一些变量信息

留坑后面再补充

以上是分析崩溃的部分方法,还有其他一些方法可以参考如下文章:

利用windbg分析崩溃,句柄泄漏,死锁,CPU高,内存泄漏 - 走看看

如何使用WinDbg查找蓝屏原因 - zhaotianff - 博客园
————————————————

举报

相关推荐

0 条评论