Невозможно отсоединиться от процесса с помощью mdbg - PullRequest
3 голосов
/ 18 декабря 2008

Исходя из этого вопроса Теперь у меня есть код, который можно присоединить к процессу с помощью 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 ]

2 голосов
/ 18 декабря 2008

Оказывается, что Mdbg не позволит вам что-либо делать , пока работает беженец .

  MgProcess.CorProcess.Stop(0);
  MgProcess.Detach();

Кажется, что путь вперед.

1 голос
/ 14 ноября 2009

Попробуйте это:

proc.AsyncStop();
proc.Detach();

или

Proc.CorProcess.Stop(0);  
Proc.Detach();
...