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:Windowssystem32en-USerofflps.txt

我会从在调试器下运行它开始,让它运行一天。请记住启用所有异常来捕获 - 在我的VS 2005中,它在调试>异常中,为异常添加处理程序40000015。

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

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

最新更新