当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

release下无法及时定位崩溃 导出dump文件来定位release版本 cod文件 map文件

发表于: 2013-08-19   作者:aigo   来源:转载   浏览次数:
摘要: 原文:http://blog.csdn.net/wangyangtao/article/details/5357409   由于在release下无法及时定位崩溃的位置,所以建议相关人员修改工程配置,以便导出dump文件来定位release版本。 下面以VS2005为例,介绍修改过程: 如果是lib修改4处地方: 1. 工程 à pr

原文:http://blog.csdn.net/wangyangtao/article/details/5357409

 

由于在release下无法及时定位崩溃的位置,所以建议相关人员修改工程配置,以便导出dump文件来定位release版本。

下面以VS2005为例,介绍修改过程:

如果是lib修改4处地方:

1. 工程 à properties à C/C++ àGeneral à Debug Information Format       选择 Program Database for Edit & Continue (/ZI)可使release下可调式

2. 工程 à properties à C/C++ àOptimization àOptimization                选择 Disabled (/Od)

3. 工程 à properties à C/C++ àOptimization àWhole Program Optimization 选择 No”(1,2,3与生成DUMP文件有关)

4. 工程 à properties à C/C++ àOutput Files àAssembler Output            选择 Assembly, Machine Code and Source (/FAcs)此处生成cod文件(包含汇编的所有code)

如果是dll除了修改上面4处,还要修改Linker

5. 工程 à properties à Linker àDebugging àGenerate Map File            选择 Yes (/MAP)此处生成map文件(所有函数的入口内存地址 当崩溃时会有崩溃地址可以据此查询)

设置完之后编译即可。(现今一般调试有两种组合:1 cod文件+map文件 2 dump文件+windbg分析)

 

为了及时获取dump文件,程序在打包出去使用时,需要在使用的机器上运行系统自带的Mr Watson作为默认调试程序,步骤简单,如下:

1. 在运行中输入命令:“drwtsn32.exe -i”,结果如下:

 

2.再在运行中输入“drwtsn32.exe ”,做一些配置,如下图:  日志文件路径为所要放置dump文件的文件夹路径,故障转储就是该目录下的dmup文件路径。选择指令和错误数量可以写多点,比如50

故障转储类型选择“完整”。选项中选择第1236项即可。配置结束后,运行程序,当程序崩溃后会在所设路径下生成dump文件,我们可以从用户处拷回dump文件作分析。

 

由于默认release下不生成pdb文件,所以需要自己添加:

工程 à properties à Linker àDebugging àGenerate Program Database File     填入 $(TargetDir)$(TargetName).pdb

release下无法及时定位崩溃 导出dump文件来定位release版本 cod文件 map文件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(转载)http://www.cnblogs.com/sunyubo/archive/2010/08/25/2282132.html 1.概念 1). 什么是core
在Visual Studio 中,当你在所有打开的文件中进行切换时,在Solution Explorer中也会自定定位到这个
在我的那篇《 让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法
在我的那篇《 让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法
在我的那篇《 让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法
转载自:http://blog.csdn.net/hyr83960944/article/details/38067499 在Eclipse中有一个很好的功能
在我上篇文章《 让程序在崩溃时体面的退出之SEH》中讲解了SEH中try/except可以捕捉异常,避免程序的
原文:http://www.cnblogs.com/52cik/p/js-console-show-source.html 在控制台输入要查找的函数名如
Eclilpse定位选中java类对应的class文件 1,定义一个.bat文件 内容为: set class_path=%1 set clas
Eclilpse定位选中java类对应的class文件 1,定义一个.bat文件 内容为: set class_path=%1 set clas
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号