首页 > 解决方案 > DebugActiveProcessStop 是否关闭句柄?

问题描述

根据文档,将在和ContinueDebugEvent之后关闭句柄。EXIT_THREAD_DEBUG_EVENTEXIT_PROCESS_DEBUG_EVENT

在以下情况下,这些句柄会发生什么情况:

DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);

进程和线程仍将运行,并且文档没有提及有关句柄的任何内容。我可以假设他们会为我关闭吗?

标签: windowsdebuggingwinapi

解决方案


是的,在通过调用实际停止调试之前DebugActiveProcessStop调用。关闭所有打开的线程和进程句柄。它列出存储在线程中- 这意味着只能从调用其他调试 api(例如)的同一线程中进行调用。不幸的是,我也没有在文档中看到对此的确认,只有研究。这是win10的截图CloseAllProcessHandlesDbgUiStopDebuggingCloseAllProcessHandlesTEBWaitForDebugEvent

在此处输入图像描述


推荐阅读