无法使用mdbg从进程中分离

时间:2008-12-18 15:39:32

标签: c# .net debugging mdbg

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进程的正确方法?

2 个答案:

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