【发布时间】:2010-09-27 13:29:06
【问题描述】:
我有一个用 C++ 编写的 Windows 应用程序,它偶尔会消失。我使用蒸发这个词是因为没有留下任何东西:没有来自 Windows 的“我们很抱歉”消息,没有来自 Dr. Watson 设施的崩溃转储......
有一次在调试器下发生崩溃,但调试器并没有中断——它显示应用程序仍在运行。当我手动暂停执行时,我发现我的进程不再有任何线程。
如何捕获此进程终止的原因?
【问题讨论】:
-
你怎么知道应用程序没有正常退出?
-
两个原因: 1. 应用程序在正常退出时,要经过几个循环才能正确关闭一些网络连接的硬件。崩溃后硬件仍在运行。 2.当应用程序正常退出时,调试会话结束。在这种情况下,它没有。
-
您在问题中说应用程序线程已终止,然后主进程循环退出。这听起来像应用程序正常终止 - 并且“错误”可能是一个设计问题。检查您的线程循环以了解它们退出的原因(断点)。
标签: c++ debugging winapi crash