为什么 ntdll.dll 会使我的 c++ 可执行文件崩溃? [英] Why is ntdll.dll crashing my c++ executable?

查看:94
本文介绍了为什么 ntdll.dll 会使我的 c++ 可执行文件崩溃?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am having trouble to get a Visual C++ executable to work, the app crashes , here is what I have seen in the event viewer.

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:WindowsSysWOW64
tdll.dll
Report Id: 1813823a-2e97-11e2-8675-000c29229191

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

The executable compiled in old versions of Visual Studio work but I get the error with the executable compiled with newer VS like 2008 or 2010. please advice

推荐答案

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

Troubleshooting this type of problem can be a real challenge... particularly when you are not familiar with the code base.

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

Consider using the Application Verifier in conjunction with the Visual Studio debugger.

  1. 启动 Visual Studio 并编译您的应用程序
  2. 启动应用程序验证器实用程序.
  3. 文件 =>添加应用程序
  4. 选择适当的测试(例如堆、异常等)
  5. 使用 Visual Studio Debug 启动您的应用程序.
  1. Start Visual Studio and compile your application
  2. Start the application Verifier utility.
  3. File => Add Application
  4. Select the appropriate Tests (e.g. heaps, exceptions,...)
  5. Use Visual Studio Debug to start your application.

当发生不好的事情时...您的调试器将停止.这应该可以让您很好地了解问题的根源.

When something bad happens... your debugger will stop. This should give you a pretty good idea of the source of the problem.

此外,它可能有助于在开始测试之前加载缺失的符号.在 Visual Studio 2012 中,您可以通过以下方式执行此操作:调试 =>选项和设置 =>调试 =>符号 =>加载所有符号.

Also, it might help to load the missing symbols before starting your test. In Visual Studio 2012, you can do this by: Debug => Options and Settings => Debugging => Symbols => Load all symbols.

祝你好运!

  • MSDN:应用程序验证器"文章
  • 下载:应用程序验证者
    • 之前此应用程序可作为单独下载获得:这里
      • 此下载不再可用.
      • C:WindowsSysWOW64appverif.exe [32位版本]
      • C:WindowsSystem32appverif.exe [64位版本]
      • C:WindowsSysWOW64appverif.exe [32 bit version]
      • C:WindowsSystem32appverif.exe [64 bit version]

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

      When you are done, be sure to disable the AppVerfier checks that you enabled... otherwise you may experience some unexpected side-effects 6 months down the road when you have forgotten about AppVerifier.

      这篇关于为什么 ntdll.dll 会使我的 c++ 可执行文件崩溃?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆