我的一个C++ MFC应用程序在一些Windows(7,xp)计算机上随机崩溃.这个应用程序使用一些第三方库(Apache轴),当我检查依赖walker时,它显示加载与此第三方库相关的DLL后的应用程序退出.
所以我需要一种方法来检测这个应用程序的崩溃原因是什么.有没有办法做到这一点?
.pdb文件与.exe文件一起主机识别崩溃问题,但像往常一样微软没有明确的文档如何使用.IBM purify试用版.但我没有显示任何有效信息.WinDbg.但我找不到如何使用它.任何协助真的很感激.
编辑:崩溃报告添加
Problem Event Name: APPCRASH
Application Name: installer.exe
Application Version: 5.0.1.0
Application Timestamp: 51ac0bdc
Fault Module Name: AxisXMLParserXerces.dll
Fault Module Version: 1.0.0.0
Fault Module Timestamp: 51ac0016
Exception Code: c0000005
Exception Offset: 0000161d
OS Version: 6.1.7601.2.1.0.256.4
Locale ID: 18441
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789`
Run Code Online (Sandbox Code Playgroud)
以下是您可以尝试找到问题根源的几个步骤.
从这里开始,您必须根据您对应用程序和第三方库的知识和经验来确定它.在预期发生崩溃的位置处放置断点.每当遇到断点时,请查看调用堆栈以查看调用的来源.问题可能出在您的代码或第三方库中(但可能是您的代码).
你应该努力重现崩溃.让用户记录崩溃发生时他们正在执行的操作.还包括它们包括应用程序或库生成的任何日志.
这将增加您找到问题的机会,但正如我上面所说,您需要依赖于您对应用程序和库的了解.
我建议您在开始之前向应用程序添加一些代码以强制崩溃并自行完成这些步骤,以便您熟悉它们.在你做对了之前可能需要几次尝试,你可能需要稍微调整一下步骤,并根据你的环境和应用进行定制.请记住在将崩溃代码发送给用户之前删除它.
因为这似乎是你第一次接触使用调试器准备一些挫败感.这是正常的.
*其中一些步骤假定您使用的是Visual Studio.WinDbg有不同的界面,但概念是相同的.
**这些步骤也假设Windows 7. Windows XP在应用程序崩溃时显示包含类似信息的窗口,不需要重新配置.
..
.
更改检查解决方案设置
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |