问题描述
我无法让 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.
- 启动 Visual Studio 并编译您的应用程序
- 启动应用程序验证器实用程序.
文件
=>添加应用程序
- 选择适当的
测试
(例如堆、异常等) - 使用 Visual Studio
Debug
启动您的应用程序.
- 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.
当发生不好的事情时...您的调试器将停止.这应该可以让您很好地了解问题的根源.
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++ 可执行文件崩溃?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
- 之前此应用程序可作为单独下载获得:这里