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