18

我无法让 Visual C++ 可执行文件工作,应用程序崩溃,这是我在事件查看器中看到的。

Faulting application name: submit.exe, version: 0.0.0.0, time stamp: 0x50a3cce7
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58
Exception code: 0xc0000374
Fault offset: 0x000ce653
Faulting process id: 0x8fc
Faulting application start time: 0x01cdc2a3da4f2997
Faulting application path: c:\submit.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: 1813823a-2e97-11e2-8675-000c29229191

在旧版本的 Visual Studio 中编译的可执行文件可以工作,但我在使用 2008 或 2010 等较新的 VS 编译的可执行文件时遇到错误。请咨询

4

1 回答 1

15

对此类问题进行故障排除可能是一个真正的挑战……尤其是当您不熟悉代码库时。

考虑将Application Verifier与 Visual Studio 调试器结合使用。

  1. 启动 Visual Studio 并编译您的应用程序
  2. 启动应用程序验证程序实用程序。
  3. File=>Add Application
  4. 选择适当的Tests(例如堆,异常,...)
  5. 使用 Visual StudioDebug启动您的应用程序。

当发生不好的事情时……您的调试器将停止。这应该使您对问题的根源有了一个很好的了解。

此外,在开始测试之前加载缺失的符号可能会有所帮助。在 Visual Studio 2012 中,您可以通过以下方式执行此操作: Debug=> Options and Settings=> Debugging=> Symbols=> Load all symbols

祝你好运!

参考

更新:2015 年 7 月

完成后,请务必禁用您启用的AppVerfier检查......否则,当您忘记AppVerifier时,您可能会在 6 个月后遇到一些意想不到的副作用。

于 2013-03-27T15:47:17.287 回答