Windows程序崩溃定位

上传资源见:http://download.csdn.net/detail/zwz1984/9800293


一、目录说明

目录下有三个文件夹:SrcLibTool

Src存放生成dmp文件(崩溃转储文件)所需要的源文件,需要集成到程序源码中的。

Lib存放生成dmp文件的依赖库(dbghelp.dll)。现在的Window系统(Win7以上)都已集成了此库;如果系统中没有,则需要在发布程序时带上此库。

Tool存放定位崩溃的工具(WinDbg

 

二、准备工作

1. 安装工具

Windows上安装WinDbg工具。

 

2. 设置环境

1)设置调试信息

Release选项编译程序时,默认调试信息为空。我们需要修改配置,设置调试信息。

 


2)产生调试信息

Release选项编译程序时,默认不产生调试信息。我们需要修改配置,产生调试信息。


 

3. 添加文件

1)加入文件

Src目录下的DbgHelp.h(高版本VC中默认集成了此文件,可不用加入工程)、MiniDumper.hMiniDumper.cpp添加到VC工程中。

 

2)引用文件

StdAfx.h中,加入如下代码:

#include "MiniDumper.h"

CMiniDumper g_minidump(false);

 

三、崩溃定位

当程序在执行过程中,产生dmp文件时,可以按如下步骤来定位:

1. 查看dmp文件

dmp文件就在执行程序的同级目录下。文件名以执行程序名生成时间组成。

 

2. 打开dmp文件

打开WinDbg,在文件菜单中 ,选择打开崩溃转储文件。


 

打开文件后,在弹出的窗口中出现如下信息:

 

3. 定位dmp信息

输入!analyze -v,即可看到调用堆栈信息(红线框所示)及出错代码信息(蓝线框所示)。

 


四、常见问题

1. 崩溃时不产生dmp文件

1)检查VC环境设置,是否设置了“产生调试信息

当未设置“产生调试信息”时,编译程序时将不会生成pdb文件,程序崩溃时也不会产生dmp文件。

 

2. 使用dmp文件无法定位错误

1)检查VC环境设置,是否设置了“调试信息为空”?

调试信息为空时,可能无法正常定位。

 

2)本地源码及相关位置是否更新?

dmp文件中可能包含了源码及相关位置信息,更新这些信息后,将会导致无法定位错误。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值