Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VSCode远程调试Go代码_Go_Visual Studio Code_Vscode Debugger_Delve - Fatal编程技术网

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

如何使用VSCode远程调试Go代码,go,visual-studio-code,vscode-debugger,delve,Go,Visual Studio Code,Vscode Debugger,Delve,我在docker容器中运行一个需要调试的进程。该过程通过以下方式在docker的入口点启动: dlv debug/go/src/path/to/package--headless--listen=:2345--log用于以后在VSCode中启用调试 docker容器通过以下方式启动: docker run--rm-it-p 2345:2345我的图片:tag。注意:delve的端口是暴露的 在VSCode中,我定义launch.json,如下所示: { "version": "0.2.0

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

docker容器通过以下方式启动:
docker run--rm-it-p 2345:2345我的图片: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
进行命令行调试,并实际调试远程进程,这表明headless服务器正常工作。我宁愿用VSCode调试源代码。

用(2020年4月)再试一次(2020年4月后的任何时候,最新的VSCode官方发行版就足够了)

包括来自以下方面的确认:

此扩展的最新beta版中提供了来自的修复程序。请尝试分享反馈
最新版本的扩展现在已经解决了这个问题

以及:

我可以确认,我现在能够使用AWS SAM来启动一个linux容器,其中包含从Windows编译的delve和go二进制文件

对于仍然存在此问题的任何人(就像我在编辑此评论之前一样),请注意launch.json的“remotePath”元素是在本地系统(而不是容器)上编译的源文件的绝对路径。
如上所述-编译二进制文件时,它是添加到DWARF编译单元文件表中的绝对本地路径