如何以编程方式将 JetBrains Rider 的调试器附加到插件中的进程

问题描述 投票:0回答:1

我目前正在开发 JetBrains Rider 的插件(版本 2023.2.3)。该插件的一个关键功能涉及使用 System.Diagnostics.Process 创建和运行 .NET 可执行文件,这使我能够访问进程 ID (PID)。我的目标是以编程方式将 Rider 的调试器附加到此进程,类似于 Rider 文档中所述通过 UI 完成的方式 https://www.jetbrains.com/help/rider/attach-to-process.html#attach -到本地

在类似的 Visual Studio 插件中,我使用以下 C# 代码实现此功能:

foreach (Process item in _dte.Debugger.LocalProcesses)
{
    if (item.ProcessID == newp.Id)
    {
        item.Attach();
        break;
    }
}

但是,我在 Rider 中复制这一点面临着挑战。在我的 Rider 插件中,我使用 IExecutableAction 来触发执行函数。在此函数中,我可以访问 IDataContext,从中我可以获得各种组件,例如

context.GetComponent<ISolutionBuilder>().

尽管尝试获取与调试器相关的各种组件,但我还没有找到任何提供附加到进程的功能的组件。 Rider 的 API 中是否有特定组件或方法可以以编程方式将调试器附加到进程?

任何见解或指导将不胜感激!

.net debugging rider jetbrains-rider rider-plugin
1个回答
0
投票

请查找附加到流程的示例。您必须在 Rider 前端(在 kotlin 代码中)而不是在后端实现此逻辑

© www.soinside.com 2019 - 2024. All rights reserved.