3
我在附加到目标进程时创建的线程中运行我的事件循环。 我之前做的分离只是简单地调用一个函数来清除调试并调用DebugSetProcessKillOnExit等,但得到错误的返回值我想他们必须从我创建的线程中调用。所以我做了,现在没有错误,但目标进程只是退出/脱离自己时退出。Windows调试Api - 分离不起作用
在我检查的事件循环布尔检查我是否应该分离(?没有更好的办法)的时刻,然后执行以下操作:
pEng->ClearHardwareBreakpoints();
DebugSetProcessKillOnExit(FALSE);
ContinueDebugEvent(pEng->pId, pEng->tId, DBG_CONTINUE);
DebugActiveProcessStop(pEng->pId);
return 0;
ClearHardwareBreakpoints挂起目标线程,以调用GetThreadContext CONTEXT_DEBUG_REGISTERS并使用SetThreadContext移除调试寄存器并恢复该线程。
所以,正如我所说的,问题是调试过程也随我的过程退出,就好像分离不起作用。
任何帮助表示赞赏。
将其分解为可能的最小问题。注释掉事情,然后慢慢添加回来,直到问题发生。至少这将有助于缩小范围。 – Luke 2011-03-10 14:36:03