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 に答える