3

这个问题开始,我现在有了可以使用 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 进程的正确方法?

4

2 回答 2

2

事实证明,当被调试者正在运行时,Mdbg 不允许您做任何事情。

  MgProcess.CorProcess.Stop(0);
  MgProcess.Detach();

似乎是前进的方向。

于 2008-12-18T16:15:58.453 回答
1

试试这个:

proc.AsyncStop();
proc.Detach();

或者

Proc.CorProcess.Stop(0);  
Proc.Detach();
于 2009-11-14T08:51:50.143 回答