Невозможно отсоединиться от процесса с помощью 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();
Другие вопросы по тегам