如何使用Windbg分析崩溃dump

如何使用Windbg分析崩溃dump,第1张

需要为Windbg软件设置符号表路径,作为蓝屏原因分析数据库,否则软件将没有作用。单击File--选择Symbol File Path,在d出的对话框Symbol Path文本框中输入SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols,单击OK。

设置完毕后单击File--选择Open Crash Dump来打开蓝屏文件,在d出的对话框中点选到C:\Windows\Minidump文件夹,单击我们要分析的蓝屏文件,单击打开。

在d出的对话框Save Information for workspace?(是否保存信息到工作区)中单击Yes。(如果下次不想再被提示,可以勾选Don't ask again in the WinDbg session)。

接下来就是对文件进行分析,这需要一定的经验和知识。这里我们着重可以看一下System Uptime(开机时间)和Probably Caused By(可能引起故障的原因是)。

需要进一步分析,可以单击!analyze -v,此时我们可以从中提取到蓝屏错误代码和引起蓝屏的程序名称,再通过网络搜索这些程序名和代码等方式弄清原因。

在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 ,并且点击确定

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

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

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

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

Dr.Watson系统自带的程序。

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

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

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

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

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

二、关闭Dr.Watson方法

(1)打开注册表

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

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

三、Windbg下载地址

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

四、DMP文件获取

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

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

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

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

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

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

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

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

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

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

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

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

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12104108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存