如何调试意外以静默方式终止的 win32 进程?

2022-01-12 00:00:00 debugging winapi crash c++

我有一个用 C++ 编写的 Windows 应用程序,它偶尔会消失.我使用蒸发这个词是因为没有留下任何东西:没有来自 Windows 的我们很抱歉"消息,没有来自 Dr. Watson 设施的崩溃转储......

I have a Windows application written in C++ that occasionally evaporates. I use the word evaporate because there is nothing left behind: no "we're sorry" message from Windows, no crash dump from the Dr. Watson facility...

有一次在调试器下发生崩溃,但调试器并没有中断――它显示应用程序仍在运行.当我手动暂停执行时,我发现我的进程不再有任何线程.

On the one occasion the crash occurred under the debugger, the debugger did not break---it showed the application still running. When I manually paused execution, I found that my process no longer had any threads.

如何捕获此进程终止的原因?

How can I capture the reason this process is terminating?

推荐答案

您可以尝试使用 windows调试工具包.

adplus -crash -p yourprocessid

自动转储工具为异常提供小型转储,并在应用程序崩溃时提供完整转储.

The auto dump tool provides mini dumps for exceptions and a full dump if the application crashes.

相关文章