为什么ntdll.dll会崩溃我的c ++可执行文件?

时间:2012-11-14 22:16:19

标签: visual-c++ process crash ntdll

我无法使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中编译的可执行文件可以正常工作,但我得到的错误是使用较新的VS编译的可执行文件,如2008或2010.请提供建议

1 个答案:

答案 0 :(得分:10)

解决此类问题可能是一个真正的挑战......特别是当您不熟悉代码库时。

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

  1. 启动Visual Studio并编译应用程序
  2. 启动应用程序Verifier实用程序。
  3. File => Add Application
  4. 选择适当的Tests(例如堆,例外情况......)
  5. 使用Visual Studio Debug启动您的应用程序。
  6. bad 发生错误时......您的调试器将停止。这应该让你很好地了解问题的根源。

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

    祝你好运!

    参考

    更新:2015年7月

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