WinDbg分析DMP文件方法完全攻略

前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试。在开发人员测试出现的bug,我们可以直接在本地进行调试。如果测试人员测试出崩溃级别的bug,如果我们需要调试往往借助于vs提供的Remote
Debugger工具进行远程调试(关于vs2010远程调试的方法,请参考http://blog.sina.com.cn/s/blog_a459dcf5010153o7.html),然是当程序在用户手中出现崩溃此时我们可以采用Remote
Debugger进行调试,但是如果此时开发人员无法直接去用户现场调试,此时就需要用户生成DMP文件,以便开发人员使用DMP文件进行分析。

本文主要介绍C++开发过程中出现程序崩溃后,如何进行分析定位bug(基于xp系统)。

一、DMP文件获取设置

(1)在运行窗口中输入 drwtsn32
-i ,并且点击确定

(2)在(1)确定后弹出如下对话框

(3)在(2)弹出的确定框后点击确定按钮完成,将Dr.Watson设置为默认应用程序调试程序。

Dr.Watson系统自带的程序。

(4)再次在运行窗口中输入:drwtsn32,如下图:

(5)点击确定按钮,在弹出的对话框中按照下列方式设置



  (6)
点击确定按钮完成DMP文件设置。

二、关闭Dr.Watson方法

(1)打开注册表

(2)在注册表中进入主键[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug],然后将“AUTO”键值设置为0如下图:

三、Windbg下载地址

http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx,下载完成后安装

四、DMP文件获取

(1)
用vs2010创建一个基于win32的程序,其源码如下:

(2)我们知道在学习C++中整数不能跟0进行除运算,否则会引起程序崩溃。而(1)中就是编写能触发0的异常,导致程序结束运行的程序。编译(1)中的程序,结果如下:

(3)运行(2)中test.exe程序 ,程序崩溃。如下图:

(4) 按照《一、DMP文件获取设置》步骤实现Dr.Watson设置为默认应用程序调试程序。

(5)再次运行运行(2)中test.exe程序 如下图:

点击确定完成dmp文件的生成。

(6)打开在(4)中设置dmp文件路径。(本例中默认地址为:C:\Documents
and Settings\All Users\Application Data\Microsoft\Dr Watson)如下图:

其中user.dmp就是我们需要的dmp文件。

五、分析《四、DMP文件获取》中获取的DMP文件

(1)符号表路径设置(参考下图)

(2)在弹出对话框中输入:

D:\testdmp;srv*d:\symbolslocal*http://msdl.microsoft.com/download/symbols  点击ok按钮

注意:D:\testdmp;
这个是我们存放符号的文件夹,在进行此步骤前创建。

其中;srv*d:/symbolslocal*http://msdl.microsoft.com/download/symbols设置的目的是下载该程序用到的操作系统相关的库函数的符号表到本地

(3)
将前面《四、DMP文件获取》中程序生成的符号test.pdb(下图)拷贝到D:\testdmp中

拷贝后结果如下

(4) 源代码路径设置(参考下图)

(5)在弹出对话框中输入:D:\Personal\My
Documents\Visual Studio 2010\Projects\test 点击ok按钮

(6)DMP文件导入(参考下图)

点击打开,完成dmp导入。导入后自动定位错误的行,并在command中给出崩溃的原因,如下如:

WinDbg分析DMP文件方法完全攻略,布布扣,bubuko.com

时间: 2024-12-25 05:39:42

WinDbg分析DMP文件方法完全攻略的相关文章

WinDbg分析DUMP文件

1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件: SetUnhandledExceptionFilter:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SETUNHANDLEDEXCEPTIONFILTER);k(DevLang-%22C%2B%2B%22)&a

干货:微信营销引流方法全攻略

很多人问我有没有快速加粉丝的方法,经过几天的总结整理,整理出如下多种微信营销免费快速加粉秘籍,希望对大家有帮助,请切记,无论那一种方法只要你执行力好都会起到很好的效果.方法不在于多,而在于极致,一定要聚焦! 聚焦,引流1.qq群微信推广法.用十个qq,一定要太阳号,每个qq每天不停的去加群,一个QQ一天只能加20个群,有人要问了加什么类型的群呢? 针对上面的素材我们加全国各地的妈妈.孕妇群.美容护肤类的.减肥瘦身类的.丰胸美白类的,总之只要女性关注的群你都要加进去,加进去的目的不是为了发广告.

前端必知必会之文件上传攻略(一)

文件上传原理 根据http协议的定义,完成请求消息体的封装和解析,将二进制内容保存至文件. 关键字: multipart/form-data 含义: multipart表示资源有多种元素组成,form-data使用post方式或HTML Forms上传文件. 结构: 请求头:表示本次请求要上传文件,其中boundary表示分隔符. Content-Type: multipart/form-data; boundary=----WebKitFormBoundary2ahjiirVMKa4Qn78

Windows勒索病毒防范、解决方法全攻略

[防御措施建议] 1.安装杀毒软件,保持安全防御功能开启,比如金山毒霸已可拦截(下载地址http://www.duba.net),微软自带的Windows Defender也可以. 2.打开Windows Update自动更新,及时升级系统. 微软在3月份已经针对NSA泄漏的漏洞发布了MS17-010升级补丁,包括本次被敲诈者蠕虫病毒利用的"永恒之蓝"漏洞,同时针对停止支持的Windows XP.Windows Server 2003.Windows 8也发布了专门的修复补丁. 最新版

ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略

asp.net UpdatePanel实现异步局部刷新 如有雷同,不胜荣欣,若转载,请注明 鉴于最近项目需要,研究了一下UpdatePanel控件的使用方法,现总结如下,可能有很多地方不足,还望大家斧正哦,此文的目的也是为了帮助UpdatePanel的初学者,也是为了给自己的学习之路留个脚印,以便自己查缺补漏,废话到此,下面直接开始 UpdatePanel局部刷新的使用 ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是

vs2010帮助文件安装完全攻略

1.VS2010帮助文件不支持重新配置,这个时候打开C:\Program Files\Microsoft Help Viewer\1.0目录,找到"HelpLibManager.exe.config"文件,用记事本打开. 如下图: 将里面如图所示中的False改为True,之后再运行helpview,会提示安装. <?xml version="1.0" encoding="utf-8"?><configuration>&l

winXP/win7/win10系统关闭445端口方法全攻略

近日有多个高校发布了关于连接校园网的电脑大面积中勒索病毒的消息,这种病毒致使许多高校毕业生的毕业论文(设计)被锁.受害机器的磁盘文件会被篡改为相应的后缀,图片.文档.视频.压缩包等各类资料都无法正常打开,只有支付赎金才能解密恢复. 为了避免中招,建议大家关闭电脑的445端口,不同Windows的不同版本关闭445端口方法大同小异,这里介绍下通过修改注册表实现的具体操作流程: 1.开始-运行(win+R),打开运行框,输入regedit,进入注册表操作界面. 2.找到下面目录: HKEY_LOCA

PDF文件怎么编辑攻略:删除PDF文档水印或添加水印

PDF 文档不像Word文档,它具有不易编辑的特点,因此编辑PDF文档是需要专门的软件的.迅捷PDF编辑器就是一款专门编辑PDF文档的办公软件,操作十分简单,功能却很全面. 一.删除水印 1.运行迅捷PDF编辑器,然后用鼠标左键选中需要删除水印的PDF文档,然后拖拽到软件的界面中,就可以在软件中打开文件了. 2.然后按照"文档--水印--管理"的步骤进行操作,进入管理水印的界面. 3.在管理水印的界面中,你可以选中你想要删除的水印,然后单击"移除"即可删除水印. 4

抗疲劳方法全攻略