从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进程的正确方法?
最佳答案
事实证明,Mdbg将不允许您执行while the debugee is running的任何操作。
MgProcess.CorProcess.Stop(0);
MgProcess.Detach();
似乎是前进的道路。