【发布时间】:2010-11-22 07:16:20
【问题描述】:
我有一个使用第三方库的 Visual C++ 9 Win32 应用程序。当使用一组特定参数调用该库中的函数时,程序会因“异常代码 0xC000000D”而崩溃。
我尝试附加 Visual Studio 调试器 - 没有抛出异常(C++ 也没有类似访问冲突的结构),也没有调用 terminate()。程序仍然默默地结束。
程序只是异常结束但没有在调试器中停止是怎么发生的?如何定位问题?
【问题讨论】:
-
是多线程还是单线程?
-
@Simone:一个工作线程,多个由 RPC 产生的服务线程。我们彻底测试了同步,多线程不太可能是问题。
-
您运行的是发布版还是调试版?我见过一些奇怪的发布版本没有在调试器中停止的情况。
-
@Ori Osherov:在这种情况下,两个版本的行为方式相同。
-
很多好的想法 - 所有这些都会被 WinDbg 捕捉到,你会确切地知道发生了什么。捕获所有这些错误的另一种方法是使用 AppVerifier - 无需为 BoundsChecker 付费。
标签: c++ winapi debugging visual-c++