Невозможно отсоединиться от процесса с помощью mdbg
Исходя из этого вопроса, теперь у меня есть код, который можно присоединить к процессу с помощью API Mdbg.
Проблема в том, что я не могу отсоединиться от процесса, если мне нужно. Когда я вызываю mgProcess.Detach (). WaitOne (); (где mgProcess - это MDbgProcess, созданный из объекта MDbgEngine) Я получаю следующее сообщение об ошибке:
Process not synchronized. (Exception from HRESULT: 0x80131302)
at Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController.Detach()
at Microsoft.Samples.Debugging.CorDebug.CorController.Detach() in C:\mdbg\src\debugger\corapi\Controller.cs:line 89
at Microsoft.Samples.Debugging.MdbgEngine.MDbgProcess.Detach() in C:\mdbg\src\debugger\mdbgeng\Process.cs:line 716
Если я просто пытаюсь вызвать mgProcess.Detach () или mgProcess.CorProcess.Detach (), я получаю тот же результат.
Кто-нибудь знает правильный способ отсоединить процесс Mdbg?
2 ответа
Решение
Оказывается, что Mdbg не позволит вам что-либо делать, пока работает бегущий.
MgProcess.CorProcess.Stop(0);
MgProcess.Detach();
Кажется, это путь вперед.
Попробуй это:
proc.AsyncStop();
proc.Detach();
или же
Proc.CorProcess.Stop(0);
Proc.Detach();