超好用C/C++程序dll崩溃定位分析手段!

栏目: C++ · 发布时间: 5年前

内容简介:如何让程序崩溃时候生成dump文件呢,这里需要我们在程序设计的时候添加dump文件生成代码,代码比较通用,度娘上也有很多种写法,这里我们就简单地贴下通用接口(见下图),我们在程序初始化的时候加载此接口就行。

程序猿小伙伴们都知道,linux系统下如果程序出现崩溃问题,通过设置可以生成core文件,然后开始一波犀利的gdb操作精准地找到问题所在,很是得心应手。 那么问题来了,在windows操作系统下会有core文件在程序开小差的时候提供我们分析定位吗,我们有没有很好的手段可以定位问题呢?例如当 程序员 发出如下呐喊:

“客户生产的程序崩溃啦,我也要崩溃啦”!这种情况

我们可以怎么做?

其实在windows平台也是可以在崩溃时候生成类似core文件的dump文件,我们可以通过调试dump文件来还原程序崩溃时的状态,调试 工具 我推荐windbg屡试不爽很好用。“Windbg是在windows平台下,强大的用户态和 内核 态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump文件”。

如何让程序崩溃时候生成dump文件呢,这里需要我们在程序设计的时候添加dump文件生成代码,代码比较通用,度娘上也有很多种写法,这里我们就简单地贴下通用接口(见下图),我们在程序初始化的时候加载此接口就行。  

超好用C/C++程序dll崩溃定位分析手段! 超好用C/C++程序dll崩溃定位分析手段!

在有了dump文件后,我们如何分析呢,这里还需要保留我们在生成dll的时候产生的pdb文件,一一对应。debug版本会生成pdb文件,release版本默认不会生成pdb文件我们需要设置下vc、vs编译器,具体的设置不多讲一般都在工程-设置里面有debug选项勾选就行。

安装windgb,可以通过win7.1sdk里自带的debug包进行安装dbg_x86.msi进行安装,安装成功后会出现windbg调试工具。

超好用C/C++程序dll崩溃定位分析手段!

当程序崩溃时,我们已经有dump文件,pdb文件,dll文件,我们简单介绍下怎么样用windgb工具来分析出错的代码行,首先需要配置Symbol path右击file->Symbol file path进行符号表路径设置,一般路径为:C:\Symbols;SRV*C:\Symbols* http://msdl.microsoft.com/download/symbols  在c盘新建目录Sysmbols,把dll和pdb文件放到以及dump文件都放在这个目录下。

设置sysmbol路径后,直接打开dump文件,右击“file-open crash dump”,选择生成的dump文件。这个时候windgb加载dump文件需要等待一会,加载完成后,在最下面的命令行窗口输入“!analyze -v”对文件进行分析,结果如下图所示,我们就可以精准的知道代码的哪一行会有问题。

超好用C/C++程序dll崩溃定位分析手段!

有了这个方法基本上再也不怕崩溃的问题,小伙伴们赶紧收藏吧。


以上所述就是小编给大家介绍的《超好用C/C++程序dll崩溃定位分析手段!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web信息架构(第3版)

Web信息架构(第3版)

Peter Morville、Louis Rosenfeld / 陈建勋 / 电子工业出版社 / 2008年8月 / 85.00

本书涵盖了信息架构基本原理和实践应用的方方面面。全书共7个部分,包括信息架构概述、信息架构的基本原理、信息架构的开发流程和方法论、信息架构实践、信息架构与组织、两个案例研究,以及参考资料清单。 本书兼具较高的理论价值和实用价值,曾被Web设计领域多本书籍重点推荐,是信息架构领域公认的经典书,不论新手还是专家都能各取所需。本书可供Web设计与开发者、Web架构师、网站管理者及信息管理相关人员参......一起来看看 《Web信息架构(第3版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器