登录
首页 >  Golang >  Go问答

如何使用 VSCode 远程调试 Go 代码

来源:stackoverflow

时间:2024-04-13 18:30:35 262浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《如何使用 VSCode 远程调试 Go 代码》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我在 docker 容器内运行一个需要调试的进程。该进程在 docker 的入口点通过以下方式启动 dlv debug /go/src/path/to/package --headless --listen=:2345 --log 以便稍后在 vscode 中启用调试。

docker 容器通过以下方式启动 docker 运行 --rm -it -p 2345:2345 my_image:tag。注意 delve 的端口是暴露的。

在 vscode 中,我定义 launch.json 如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach remote",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "port": 2345,
            "host": "127.0.0.1",
            "apiVersion": 1
        }
    ]
}

启动“附加远程”vscode 调试配置后,我得到

虽然不是很清楚,但该 ui 让我相信我现在已连接到远程无头调试器并准备好进行调试。我定义了一个断点,我知道该断点会被我可以发送远程进程的请求击中。我发送该请求,得到结果,并且该断点从未命中,表明我尚未实现远程调试。

我的 vscode“附加远程”配置有问题吗?我可以使用 dlv connect :2345 进行命令行调试,并且实际上调试远程进程就好了,这表明无头服务器功能正常。我宁愿在 vscode 中使用源代码进行调试。


解决方案


使用 latest beta of vscode-go(2020 年 4 月)重试(2020 年 4 月之后的任何时间,最新的官方 vscode-go 版本就足够了)

Microsoft/vscode-go issue 2010 包含来自 Ramya Rao 的确认:

还有:

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>