我正在尝试制作一个使用Debugger Engine API的小工具,但我的成功非常有限。
我可以获得我的IDebugClient和IDebugControl实例,然后我可以从那里附加到已经运行的用户进程中。然后我进入一个主循环,在其中调用WaitForEvent、OutputStackTrace、SetExecutionStatus ( DEBUG_STATUS_GO
) 并重复。本质上,这将是一个非常粗略的基于采样的分析器。
目前很好..
我的循环运行了一个完整的迭代,我可以看到正在显示堆栈跟踪,然后目标进程回到运行状态。
我遇到的问题是,在我的第二次迭代中,调用WaitForEvent
返回E_HANDLE
(“句柄无效”)。我在文档中看不到为什么应该返回这个错误。有谁知道为什么会发生这种情况?