[windows]可执行程序异常时生成dmp文件的配置和调试方法

正常情况下,可执行程序异常退出后不会生成dmp文件,这给定位分析问题原因带来了极大的困难。通过修改注册表我们可以让程序生成dmp文件,配合windbg工具的使用,可以方便的帮助定位异常问题原因。

1. 注册表修改操作

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

1.1 创建LocalDumps注册表项

在"Windows Error Reporting"上右击,新建–>项,然后重命名为"LocalDumps"。
创建LocalDumps项

1.2 创建可执行程序对应注册表项

假如我们的可执行程序叫wintest.exe,那么我们创建的表项名就叫这个名字。
在"LocalDumps"上右击,新建–>项,重命名为"wintest.exe"。
在这里插入图片描述

1.3 添加相关属性配置

在左边wintest.exe上右击或者在右边空白处右击,新建–>DWORD,重命名为"DumpCount",设置值为a,即允许同时存在10个dmp文件。
在这里插入图片描述
同样方法,新建–>DWORD,重命名为DumpType,双击该属性,设置值为2,即full dump。
同样方法,新建–>可扩充字符串值,重命名为DumpFolder,双击该属性,设置为程序的所在目录。比如"D:\Program Files\Test"。
配置完成后如下图。
在这里插入图片描述
配置完成后,程序异常后就会产生wintest.exe.xxx.dmp文件,供我们后续调试。

2. 程序dmp文件的调试方法

这里我们选用大名鼎鼎的windbg工具。

2.1 windbg工具安装方法

2.1.1 下载winsdksetup.exe

点击链接,下载winsdksetup.exe。
winsdksetup.exe

2.1.2 下载指定组件

运行winsdksetup.exe后,选择"Continue",指定下载路径,下一步会提示选择需要的功能组件,我们只要选择 "Debugging Tools for Windows"即可。
选择对应组件
点击下载,完成后,我们在下载路径可以看到相应的debugger安装文件文件。
下载完成的debugger安装文件

2.1.3 安装windbg

我们wintest.exe是32位的可执行程序,所以我们选择安装X86 Debugger,双击"X86 Debuggers And Tools-x86_en-us.msi"文件。安装完成后,在开始界面会显示对应的程序。
WinDbg

2.2 使用windbg调试dmp文件

打开windbg程序,选择 File -> Open Crash Dump ,然后选择对应的 dmp文件,点击打开。
打开dmp文件
加载dmp文件后,就会出现Command窗口。就可以开始调试分析问题了。
调试界面

发布了27 篇原创文章 · 获赞 2 · 访问量 4608

猜你喜欢

转载自blog.csdn.net/xqjcool/article/details/104589051