无法使用 mdbg 与进程分离

发布于 2024-07-10 08:16:31 字数 867 浏览 6 评论 0原文

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

Following on from this question I now have code that can attach to a process using the Mdbg API.

The problem is that I can't detach from the process if I need to. When I call
mgProcess.Detach().WaitOne(); ( where mgProcess is a MDbgProcess created from an MDbgEngine object ) I get the following error message:

 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

If I just try to call mgProcess.Detach() or mgProcess.CorProcess.Detach() I get the same result.

Does anyone know the correct way to detach an Mdbg process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仅此而已 2024-07-17 08:16:31

事实证明,Mdbg 不允许您执行任何操作 调试程序正在运行

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

似乎是前进的方向。

It transpires that Mdbg will not allow you to do anything while the debugee is running.

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

Appears to be the way forward.

夜雨飘雪 2024-07-17 08:16:31

试试这个:

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

或者

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

Try this:

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

or

Proc.CorProcess.Stop(0);  
Proc.Detach();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文