这是一个非常开放的问题,我真的只是想找到解决问题的方法。
应用程序运行一天左右,然后在使用时崩溃。应用程序中崩溃的点每次都不一样。应用程序正在使用的内存不会增加。
C ++不是我的标准开发语言,所以任何指针都会受到赞赏。
我给出的运行时错误详述如下。谷歌搜索了这个我可以看到40000015
是一个通用的我不知道发生了什么风格错误。无论如何,我可以使用附加信息(1-4)来帮助找到问题吗?
非常感谢任何帮助!
由于
Problem signature:
Problem Event Name: APPCRASH
Application Name: Main.exe
Application Version: 1.1.10.0
Application Timestamp: 5278d640
Fault Module Name: MSVCR90.dll
Fault Module Version: 9.0.30729.4940
Fault Module Timestamp: 4ca2ef57
Exception Code: 40000015
Exception Offset: 0005beae
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 2057
Additional Information 1: 3793
Additional Information 2: 379382cf89267e4a4b730ab2a7cc6828
Additional Information 3: f05b
Additional Information 4: f05b042c097ccdb870355bd0f539be8d
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
答案 0 :(得分:1)
我首先在调试器下运行它并让它运行一天。记得启用所有异常捕获 - 在我的VS 2005中调试 - >异常,为40000015异常添加处理程序。
如果你不能在调试器下运行它,即。它只发生在客户端PC上(仍然可以使用远程调试),然后您可以使用AddVectoredExceptionHandler实现异常hanlder,然后使用StackWalk64记录调用堆栈。如果可以使用符号进行编译,那么这样的堆栈将包含异常源的完整路径。它将在MSVCR90.dll中,但可能会在您的代码中的某个地方发起。如果您不能包含符号,那么您始终可以使用.map文件或windbg与本地存储的.pdb文件。当然,这是很多工作,特别是如果C ++不是你的主要语言,所以第一个建议最适合你。
好的,您也可以使用MiniDumpWriteDump,然后使用windbg而不是StackWalk64。