C ++应用程序崩溃在哪里开始寻找? MSVCR90.DLL

时间:2014-04-03 09:04:44

标签: c++ msvcr90.dll

这是一个非常开放的问题,我真的只是想找到解决问题的方法。

应用程序运行一天左右,然后在使用时崩溃。应用程序中崩溃的点每次都不一样。应用程序正在使用的内存不会增加。

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

1 个答案:

答案 0 :(得分:1)

我首先在调试器下运行它并让它运行一天。记得启用所有异常捕获 - 在我的VS 2005中调试 - >异常,为40000015异常添加处理程序。

如果你不能在调试器下运行它,即。它只发生在客户端PC上(仍然可以使用远程调试),然后您可以使用AddVectoredExceptionHandler实现异常hanlder,然后使用StackWalk64记录调用堆栈。如果可以使用符号进行编译,那么这样的堆栈将包含异常源的完整路径。它将在MSVCR90.dll中,但可能会在您的代码中的某个地方发起。如果您不能包含符号,那么您始终可以使用.map文件或windbg与本地存储的.pdb文件。当然,这是很多工作,特别是如果C ++不是你的主要语言,所以第一个建议最适合你。

好的,您也可以使用MiniDumpWriteDump,然后使用windbg而不是StackWalk64。