WinCE下错误报告的用法

      仔细看了昨晚搜刮到的那篇关于WinCE错误报告的文章,受益匪浅。使用流程已经介绍得足够详细,这里不再赘述。需要参考的同志,请直接看原文。这里补充一点原文中貌似没讲到的,个人觉得很关键的地方,如何在产品中保留错误报告。

       那篇文章中提到要将错误报告从Windows的目录下拷贝到别的非易失性的存储器中,以便后续的分析与处理。这在开发过程中是没有问题的。但如果产品已经发布,我们需要从客户的设备中获取错误报告,就行不通了。

       最初测试时发现,当应用程序出错时会在Windows的目录下生成错误报告,但选择“不发送”,从而关闭“错误报告”对话框后,生成的错误报告文件被自动删除。我想原文之所以说要拷贝出来,大概就是这个原因。很显然,我们需要将该目录直接挪到SD卡或者NAND目录中,并且阻止系统自动删除该文件。

       尝试了半天,终于找到了解决办法,修改注册表的相关键值即可。需要修改的主要有以下两项。

Dumpfiles的目录,否则错误报告也不能正确生成,特别需要注意这一点。所有的配置正确后,再次运行Crash.exe,就可以在B:/Dumpfiles/Ce092009-01目录下生成一个名为Ce092009-01.kdmp的文件。我是在模拟器中测试的,将B:/(Ramdisk)用做模拟器的Storage Card,所以是在该目录下生成了该文件。下面就可以用WinDgb工具进行分析获得的错误报告了。先设定源代码目录、映像目录、符号文件目录,然后打开Ce092009-01.kdmp文件,就可以在源代码中定位到出错的位置,如下图所示。

[HKEY_LOCAL_MACHINE/System/ErrorReporting/DumpSettings]
    
" DumpDirectory " = " //Windows//DumpFiles "                ;此处修改为指定的目录
    
" ExtraFilesDirectory " = " //Windows//ExtraDumpFiles "      ;此处修改为指定的目录
    
" CabDirectory " = " //Windows//DumpFiles//CabFiles "    ;此处修改为指定的目录
    
" UploadClient " = " //Windows//Dw.exe "
    
" MaxDiskUsage " = dword: 80000
    
" DumpEnabled " = dword: 1

 [HKEY_LOCAL_MACHINE/System/ErrorReporting/UploadSettings]
    
" NoConsentRequired " = dword: 0     ;此处修改为1,取消弹出提示框
    
" DontUpload " = dword: 0             ;此处修改为1,取消上传及自动删除,使其保留在目录中
    
" MaxWeeklyReports " = dword: 0
    
" MaxDailyReports " = dword: 0
    
" UploadSucceededDlg " = dword: 0
    " UploadFailedDlg " = dword: 0

[HKEY_LOCAL_MACHINE/init]
    " Launch95 " = " dw.exe "             ;删除该项,禁止该程序自启动

另外,需要在指定的目录下创建

 


    至此,这个
BUG就一目了然了,Fix也是很容易的事。

折腾了大半天,最后发现其实改动很小,仅仅是注册表中的几个键值。可不折腾,又怎么知道修改什么地方,怎么修改呢?最近调试一个新的开发板,也有同样的感受,最后修改也许很简单,但如何定位到这个需要修改的地方及如何修改则需要花很多时间。不过没关系,我还是挺爱折腾这些的。

昨天折腾了一个左道,应该能缓解一下目前存在的问题。今天折腾了一个正道,应该能有助于问题的最终解决,双管齐下,希望能让产品更稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值