从this question开始,我现在拥有可以使用Mdbg API附加到进程的代码。
问题在于,如果需要,我无法脱离过程。我打电话的时候 mgProcess.Detach()。WaitOne(); (其中mgProcess是从MDbgEngine对象创建的MDbgProcess)我收到以下错误消息:
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进程的正确方法?
答案 0 :(得分:2)
发现Mdbg不允许你做任何事情while the debugee is running。
MgProcess.CorProcess.Stop(0);
MgProcess.Detach();
似乎是前进的方向。
答案 1 :(得分:1)
试试这个:
proc.AsyncStop();
proc.Detach();
或
Proc.CorProcess.Stop(0);
Proc.Detach();