超好用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崩溃定位分析手段!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

你的灯亮着吗?

你的灯亮着吗?

高斯 (Donald C. Gause)、温伯格 (Gerald M.Weinberg) / 俞月圆 / 人民邮电出版社 / 2014-1-1 / CNY 25.00

本书以别具一格的视角和幽默风趣的语言讨论了解决问题时有可能遇到的多种困难,并就如何训练思维能力指点迷津。本书分六个主题,每个主题都由若干生动有趣和发人深省的小故事组成,巧妙地引导读者先确认真正的问题,然后明确问题该由谁解决,再确定问题的根源,最后决定到底想不想解决这个问题。 本书适合所有业界人士以及想要探索问题解决之道的虚心读者细细品味。一起来看看 《你的灯亮着吗?》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

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

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具