【问题标题】:How can I attach to a process running on another computer from VSCode?如何从 VSCode 附加到另一台计算机上运行的进程?
【发布时间】:2020-07-22 08:20:24
【问题描述】:

我有一个 C++ 程序,用作我公司定义的语言的解释器。我希望能够调试通过 VSCode 执行的代码。

为了做到这一点,我在解释器中开发了一个调试适配器协议服务器实现(在 C++ 中),其想法是 VSCode 将直接与该服务器对话,这将作为回报发送与解释代码有关的所有数据。

这样我就不必为 VSCode 构建整个调试器扩展(尤其是因为我不会编写 JS)。

到目前为止,我完成了所有这些工作,这要归功于 launch.json 文件的“debugServer”键。

以下启动配置是我在开发过程中使用的配置:

{
    "type": "node",
    "request": "attach",
    "name": "name",
    "debugServer":12345
}

这一切都很好,但它现在只适用于本地主机。

有没有办法告诉调试适配器客户端(内置 vscode)将其请求发送到特定的 IP 地址?

【问题讨论】:

    标签: visual-studio-code vscode-extensions vscode-debugger


    【解决方案1】:

    据我在文档中看到的,唯一支持“远程调试”的调试器是默认的 Node.js (see here)。如果你使用的是节点调试器,那么应​​该有办法set it up

    如果没有,我猜您必须按照 API 指南实施自己的 Debugger Extension。我认为您描述的选项提到hereDebugAdapterServer

    希望有帮助

    【讨论】:

    • 我已经尝试过 Node.js 远程调试,但它似乎不起作用。 VSCode 在尝试附加到远程进程时发送的消息不遵循 DAP 协议格式(其中一条消息有额外的双引号)。我发现了一些其他支持远程调试的调试扩展(例如 python 或 c++ 的),所以如果我要实现自己的调试器扩展,我会有足够的例子。但我仍然希望找到一种更简单的方法来使用编辑器中已经构建的内容。无论如何感谢您的回答。
    • 不客气!我正在编写一个完整的语言服务器,只是因为实际上没有其他替代方案可用......所以我知道你的感受。可悲的是,听起来您的情况确实与我的情况相似……希望其他人可以就该主题提供更多见解!
    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多