我正在尝试制作一个使用Debugger Engine API的小工具,但我的成功非常有限。
我可以获取IDebugClient和IDebugControl个实例,然后我可以将其附加到已经运行的用户进程中。然后我输入一个主循环,我调用WaitForEvent,OutputStackTrace,SetExecutionStatus(DEBUG_STATUS_GO
),并重复。实质上,这将是一个非常粗略的基于采样的分析器。
到目前为止很好..
我的循环运行一整个迭代,我可以看到正在显示堆栈跟踪,然后目标进程又回到运行状态。
我遇到的问题是,在我的第二次迭代中,对WaitForEvent
的调用返回E_HANDLE
(“句柄无效”)。我无法在文档中看到为什么要返回此错误。有谁知道为什么会发生这种情况?
答案 0 :(得分:0)
问题原来是我正在编译,链接和运行旧版本的SDK。现在我已将SDK升级到最新版本(我认为是在线文档引用的版本),我得到的行为至少与文档一致。
我仍有问题,但不再是这个问题。