Windows DebugActiveProcessStop是否关闭句柄?
根据,Windows DebugActiveProcessStop是否关闭句柄?,windows,debugging,winapi,Windows,Debugging,Winapi,根据,ContinueDebugEvent将在EXIT\u THREAD\u DEBUG\u EVENT和EXIT\u PROCESS\u DEBUG\u EVENT之后关闭句柄 在以下情况下,这些句柄会发生什么情况: DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger. DebugActiveProcessStop(dwProcessId); 进程和线程仍将运行,并
ContinueDebugEvent
将在EXIT\u THREAD\u DEBUG\u EVENT
和EXIT\u PROCESS\u DEBUG\u EVENT
之后关闭句柄
在以下情况下,这些句柄会发生什么情况:
DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
进程和线程仍将运行,并且没有提到任何关于句柄的内容。我可以假定它们将为我关闭吗?是的,在通过调用实际停止调试之前调用。CloseAllProcessHandles
关闭所有打开的线程和进程句柄。它列表存储在线程TEB
-这意味着只能从调用其他调试api的同一线程(例如WaitForDebugEvent
)进行调用。不幸的是,我也没有在文件中确认这一点,只有研究。这是win10的屏幕截图
遗憾的是,虽然没有记录在案,但这似乎是答案。谢谢@user1000039-这个技巧使用句柄,
DebugActiveProcess
实现(在调试过程中创建线程),不可能同时组合等待调试事件和gui消息-我个人不使用win32调试api而是使用DbgUi的原因api@user1000039-同样在Alex Ionescu中,请注意CloseAllProcessHandles
。但我没有这方面的msdn文档