Windows程序崩溃定位 vs2010

所需要资源下载:

 http://download.csdn.net/detail/zwz1984/9800293


一、目录说明

目录下有三个文件夹:SrcLibTool

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

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

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

 

二、准备工作

1. 安装工具

Windows上安装WinDbg工具。

 

2. 设置环境

1)设置调试信息

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文件中可能包含了源码及相关位置信息,更新这些信息后,将会导致无法定位错误。


所需资源工具见:http://download.csdn.net/detail/zwz1984/9800293

没有更多推荐了,返回首页