为什么ntdll.dll崩溃我的c ++可执行文件? [英] Why is ntdll.dll crashing my c++ executable?
问题描述
我无法获得Visual C ++可执行文件的工作,应用程序崩溃,这是我在事件查看器中看到的。
故障应用程序名称:submit.exe,版本:0.0.0.0,时间戳:0x50a3cce7
故障模块名称:ntdll.dll,版本:6.1.7601.17514,时间戳:0x4ce7ba58
异常代码:0xc0000374
故障偏移:0x000ce653
故障过程ID:0x8fc
故障应用程序启动时间:0x01cdc2a3da4f2997
故障应用程序路径:c:\submit.exe
故障模块路径:C:\Windows \SysWOW64\\\
tdll.dll
报告ID:1813823a-2e97-11e2-8675-000c29229191
在Visual Studio工作的旧版本中编译的可执行文件,但我得到的错误与可编译的可执行文件编译与更新的VS像2008或2010.请咨询
$ b $ b
请考虑使用应用程序验证器与Visual Studio调试器结合使用。
- 启动Visual Studio并编译您的应用程序
- 启动应用程序Verifier实用程序。
-
文件
=>添加应用程序
-
测试
(例如堆,异常...) - 使用Visual Studio
调试$
- MSDN:Application Verifierarticle
- 下载:应用程序验证器
- 我相信它也包含在各种Windows SDK(以前称为Platfrom SDK)
- 注意您可能安装了两个版本:
- code> C:\Windows \SysWOW64\appverif.exe [32位版本]
-
C: \\ Windows \System32 \appverif.exe
[64位版本]
- TechNet:Two Minute Drill:Application Verifier
- Start Visual Studio and compile your application
- Start the application Verifier utility.
File
=>Add Application
- Select the appropriate
Tests
(e.g. heaps, exceptions,...) - Use Visual Studio
Debug
to start your application. - MSDN: "Application Verifier" article
- Download: Application Verifier
- I believe it is also included with the various Windows SDKs (previously known as Platfrom SDK)
- Be mindful that you may have two versions installed:
C:\Windows\SysWOW64\appverif.exe
[32 bit version]C:\Windows\System32\appverif.exe
[64 bit version]
- TechNet: Two Minute Drill: Application Verifier
$ b 当坏发生时...您的调试器将停止。 此外,它还可以帮助您在开始之前加载缺少的符号。 测试。在Visual Studio 2012中,可以通过以下方式实现:
调试
=> 选项和设置
=> code>调试 => 符号
=> 加载所有符号
p> 祝你好运!
参考
:2015年7月
完成后,请务必停用您启用的[em> AppVerfier ]检查...否则您可能会遇到意想不到的一面 - 如果您忘记了 AppVerifier ,则会在6个月内失效。
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:\Windows\SysWOW64\ntdll.dll
Report Id: 1813823a-2e97-11e2-8675-000c29229191
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.
Consider using the Application Verifier in conjunction with the Visual Studio debugger.
When something bad happens... your debugger will stop. This should give you a pretty good idea of the source of the problem.
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
.
Good luck!
REFERENCES
UPDATE: July 2015
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屋!