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();


似乎是前进的道路。

10-08 16:11