我有一個簡單的調試器,我寫了,並且我正在創建一個子進程的進程上運行它。 只爲主進程調用CREATE_PROCESS_DEBUG_EVENT,而不是調用子進程(我用CreateProcess和DEBUG_PROCESS標誌打開這個進程)。CREATE_PROCESS_DEBUG_EVENT子進程
如何在子進程啓動時不調用CREATE_PROCESS_DEBUG_EVENT?
我有一個簡單的調試器,我寫了,並且我正在創建一個子進程的進程上運行它。 只爲主進程調用CREATE_PROCESS_DEBUG_EVENT,而不是調用子進程(我用CreateProcess和DEBUG_PROCESS標誌打開這個進程)。CREATE_PROCESS_DEBUG_EVENT子進程
如何在子進程啓動時不調用CREATE_PROCESS_DEBUG_EVENT?
This page指示CREATE_PROCESS_DEBUG_EVENT
通過「被調試進程的圖像文件的句柄,被調試進程的句柄以及被調試進程的初始線程的句柄」生成回調。它沒有提到有關兒童進程的任何信息。而CREATE_PROCESS_DEBUG_EVENT
的頁面確實提到了子進程。我指出這一點的原因是,可能有一些無證的東西,你必須做的才能使其發揮作用。
一個建議是看Windbg是否能妥善處理您遇到問題的情況。如果是,則調試Windbg並在WaitForDebugEvent
上設置一個斷點。看看Windbg如何調用WaitForDebugEvent
與調試器有什麼不同。
發生在我身上的另一個問題是您的調試器沒有權限到子進程。用Windbg運行上述測試應該會告訴你是否是這種情況。
當你說「這個過程」你是指主要過程還是子過程? –
我打開CreateProcess主進程,它自己創建一個子進程。由於在調試主進程時,我應該看到兩次CREATE_PROCESS_DEBUG_EVENT(一個用於主進程,另一個用於它創建的子進程)。但是我只看到一個事件 – user5188701
您是否知道如何創建子進程?你有沒有仔細檢查過(例如使用Process Explorer)你調試的過程是否真的是孩子的父母? –