Не удается отделиться от процесса с помощью mdbg
Вопрос
Следуя дальше от этот вопрос Теперь у меня есть код, который может быть присоединен к процессу с помощью Mdbg API.
Проблема в том, что я не могу отключиться от процесса, если мне нужно.Когда я звоню mgProcess.Отсоединить().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.Отсоединить() или mgProcess.CorProcess.Отсоединить() Я получаю тот же результат.
Кто-нибудь знает правильный способ отсоединения процесса Mdbg?
Решение
Выясняется, что Mdbg не позволит вам ничего делать во время выполнения отладчика.
MgProcess.CorProcess.Stop(0);
MgProcess.Detach();
Похоже, это путь вперед.
Другие советы
Попробуй это:
proc.AsyncStop();
proc.Detach();
или
Proc.CorProcess.Stop(0);
Proc.Detach();
Не связан с StackOverflow