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

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

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

如果是lib修改4处地方:

1. 工程 -> C/C++ ->  Debug Information Format       选择 “Program Database for Edit & Continue (/ZI)”可使release下可调式

2. 工程 -> C/C++ -> Optimization                选择 “Disabled (/Od)”

3. 工程->  C/C++ -> Optimization(优化)-> Whole Program Optimization 选择 “No”(1,2,3与生成DUMP文件有关)

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

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

5. 工程 ->  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。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值