Visual Studio调试dump文件(Windows/C/C++)

https://baike.baidu.com/item/memory.dmp/5373528
如何调试MEMORY.DMP 用WinDBG调试,调试方法如下:

1、启动 windbg, windbg界面: file->symbol file path (ctrl+s) 输入 :“SRV*c:\temp*http://msdl.microsoft#com/download/symbols”(不带引号,将#换成.),然后确定
2. windbg界面: file->open crash dump(ctrl+d),
打开例如C:\Windows\ Minidump\Mini122208-01.dmp后,等待提示
当出现 Use !analyze -v to get detailed debugging information. 字样后,
在下面输入框!analyze -v
3. 等待分析完毕。

分割线
https://blog.csdn.net/u011073673/article/details/77967698
调试之前务必确保:

(a) 生成dump文件的程序版本和当前调试所用的程序版本完全一致(即pdb/源文件的时间戳、版本号等务必一致);

(b)生成dump文件的程序名称务必要与当前调试所用的程序名称完全一致;

否则会报类似”…binary do not matchs…”错误

以下是调试步骤:
1、将dump文件拷贝到PDB所在目录;

2、打开vs菜单栏的Tools—-Options—-Debugging—-Symbols
a、若是首次调试dump,需要微软基础库的PDB信息,需在”Symbol file(.pdb) locations”中增加一个路径:http://msdl.microsoft.com/download/symbols或者直接在“Microsoft Symbol Servers”前面勾选上即可;
b、然后在下方的”Cache Symnols in this directory”中添加一个目录,用于保存a步骤中下载的微软基础库PDB;
c、若之前已下载微软基础库PDB,则可以跳过a步骤,直接从b步骤开始;

3、vs菜单栏VIEW—-Solution Explorer—-Properties—-Debug Source Files
在”Directions containing source code”中添加源文件所在目录,必须是.sln所在目录

4、回到”Minidump File Summary”界面,点击右上方的”Debug with Native Only”
程序即可回放到崩溃发生时的代码位置

注:
如果回放的时候只是提醒崩溃产生的原因而并未跳转到代码所在位置,可能的原因有:
1、No Binary Found
这可能是因为产生dump文件所在系统的dll、lib、头文件等版本、时间戳与当前系统环境不一致导致的,此时可以通过上面第2步骤中a操作,重新下载微软基础库的PDB信息尝试解决(该方法主要针对dll not found

猜你喜欢

转载自blog.csdn.net/baidu_37503452/article/details/88555467