您的位置:首页 > 其它

软件crash后生成dmp,可用VC编译器和Windbg查看 简单使用问题

2014-05-25 11:03 716 查看
最近软件有个crash,在debug下几乎不会发生,在release版本下,长时间运行下基本上会发生,原本使用procdump进行监控并且用windg进行分析查看call stock,有时却发现会忘记,于是想把该功能写入软件,后期可以向qq等软件一样发生crash后可以进行发送个开发者,下面是这几天遇到的问题及其解决方案(只是几天的研究,功力浅,如有错误请谅解,如对你有帮助,请顶)。

接到该需求时,本人的思路是这样的,先crash时能够生成dmp文件,并且可以VC编译器或者windg进行定位代码(最好能用windg);百度后有下面的几篇很有参考和使用帮助/article/1360336.html,感谢该博客的博主那么详细的使用方式,根据该篇文章,不出意外应该可以进行dmp文件的生成和用VC调试,VC调试dmp文件方法,可以双击dmp文件,系统一般默认是用VC打开


点击debug with native Only,但是如果是release版本却发现定位不了信息,这是什么原因呢!具体设置请看http://www.wintellect.com/blogs/jrobbins/correctly-creating-native-c-release-build-pdbs,根据设计后是不是发现跟dubug一样呢!恭喜成功了。。。。下面将进行windg的使用和讲解。

配置请看http://support.icafe8.com/technologynews/focus/932.html,该网页前半部分讲解了windg的下载和配置,下面解决的东西我们不用理会。对于windg的使用最让人心酸莫过于Symbols一定要和你的系统对应,具体的配置请看http://www.cnblogs.com/happyhippy/archive/2007/04/08/710933.html,我个人比较倾向于让其自动下载对应的这里直接CTL+C吧

WinDbg的配置---具体请点击上面的网址

运行WinDbg->菜单->File->Symbol File Path->按照下面的方法设置_NT_SYMBOL_PATH变量:

在弹出的框中输入“C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols”(按照这样设置,WinDbg将先从本地文件夹C:\MyCodesSymbols中查找Symbol,如果找不到,则自动从MS的Symbol Server上下载Symbols)。另一种做法是从这个Symbol下载地址中http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx,下载相应操作系统所需要的完整的Symbol安装包,并进行安装,例如我将其安装在D:\WINDOWS\Symbols,在该框中输入“D:\WINDOWS\Symbols”。(这里要注意下载的Symbols的版本一定要正确,在我的Win2003+Sp1上,我曾经以为安装Win2003+Sp2的Symbols可能会牛×点,但结果证明我错了,用WinDbg打开可执行文件时,提示“PDB
symbol for mscorwks.dll not loaded;Defaulted to export symbols for ntdll.dll”的错误,我有重新装上Win2003+Sp1的Symbols, 现在一切运行正常^_^)

下面讲解用windg来打开分析dmp文件,打开windg软件,在symbols是配置成功的前提下,打开windbg


选中dmp文件,会跳出save information
for workspace?这里选中NO,可以看到下图

但是感觉定位不到函数的位置,在查询答案的时候查到下面的网址,很有帮助的一个工程,遗憾的是工程本人没有在VS2010下编译成功,如有成功的,可分享的可以留下下载网址,万分感谢

http://www.codeproject.com/Articles/3497/Add-Crash-Reporting-to-Your-Applications-with-the这里也讲解了怎么创建dmp文件,主要看对windbg调试dmp的使用



环境配置我们在这里可以不做重复,主要是在上图的红线区域输入.ecxr可以看到



有可能是编译的优化,行数有可能不正确。生成dmp和使用VC编译器及其windg分析就到此为止。

第二如何发送邮件呢,这里本人功力不够,但是有个开源的代码很值得研究,而且会定时更新http://code.google.com/p/crashrpt/,这里只是蜻蜓点水,大神们如果有兴趣,可以继续研究。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐