【发布时间】:2012-11-03 12:16:33
【问题描述】:
我无法让 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 编译的可执行文件时遇到错误。请指教
【问题讨论】:
-
几乎可以肯定不是 ntdll.dll 使您的可执行文件崩溃。很可能您的程序有一些以前被屏蔽的未定义行为,而编译器或库中的一些其他微不足道的变化恰好使问题变得可见。不过,您确实需要追溯您的应用当时在做什么才能发现问题。
-
问题是它的 3,000 行代码我无法判断程序中的哪里存在缺陷。如果有人能指出我正确的方向。
-
首先,使用调试信息构建代码并在调试器下运行。这将(通常,无论如何)让您停止它并查看它崩溃时发生了什么,并可能获得堆栈跟踪以找出导致崩溃的代码的哪一部分。
-
异常代码 0xC0000374 表示 STATUS_HEAP_CORRUPTION。这是使 C++ 程序崩溃的最常见方法。
-
您可以通过在调试器下以调试模式运行它来修复它...
标签: visual-c++ process crash ntdll