如何诊断Windows CE的应用程序崩溃

本文探讨了如何在Windows CE应用程序崩溃时进行诊断,重点介绍了从崩溃地址定位到源代码的两种方法:使用MAP文件和PDB文件。通过CrashFinder工具和Remote Process Explorer,可以更直观地查看崩溃信息,包括PC、RA、BVA和FSR等关键数据,从而有效定位和解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无论你是一个单纯的电脑用户还是一名高级软件工程师,都一定对程序崩溃不陌生。做为一名Windows CE应用程序开发者,你也一定遇到过下图这种场景:

这个对话框告诉你,有一个叫installer.exe的程序在地址00019320处崩溃了。如果这个程序归你负责,那么你的问题就来了:怎么找出这个BUG?这篇文章我想谈谈我在这方面的一些经验。
Windows CE的崩溃界面给出的信息十分的少,其中最有用的无疑是崩溃地址,如果你能从崩溃地址定位到源代码去,这个问题可以说就解决了一半。
从地址定位到源代码的方法有几种。一种是利用MAP文件:你可以在BUILD程序时生成MAP文件。MAP文件是一个文本文件,其中主要记录了各个函数入口对应的地址信息。比如这个例子中,崩溃地址对应的入口是:
0001:000082f4 ??1?$CComPtr@UIImage@@@ATL@@QAA@XZ 000192f4 f i ImageViewer.obj
MAP文件的好处是它是文本文件,可以人工阅读,缺点是信息不够多,只能定位到函数级别,而且要看懂MAP文件你需要有足够的经验,比如其中那串长长的貌似乱码的字符串是C++函数经过name mangling处理后的结果,没有一定的经验你根本没法还原出实际的函数。
另一种方法是利用PDB文件,PDB文件收集了应用程序的调试符号。PDB文件提供的信息很全,不过你得需要一定的工具才能解读它。如果你是一个经验丰富的Windows桌面平台的应用程序开发者,你可能听说过MSJ(Microsoft System Journal)这本杂志。如果你曾经看过这本杂志,应该对Bugslayer不陌生。在 这篇文章中,Bugslayer介绍了他
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值