【发布时间】:2019-05-23 11:11:24
【问题描述】:
我正在尝试调试在 docker 容器中运行的单文件 Go 应用程序,在容器中使用 delve,并在 Mac 笔记本电脑上使用 GoLand。
当我运行本地调试器时,我的断点工作。当我使用“Go Remote”配置时,我的所有断点都变成了一个斜线,并且注释说“找不到 FILENAME”。
我验证了我的源文件在服务器(容器)和客户端上的 GOPATH 的相对路径相同。
我在容器中使用 Go 1.12.5,使用以下 delve 命令:
dlv debug --headless --listen=:8044 --api-version=2 --accept-multiclient
它正确地将我的src/github.com/flinkt/reverseProxy/reverseProxy.go 构建为bin/reverseProxy,并在收到预期的 http 请求时开始输出预期的消息。
我的 GoLand 版本是 2019.1。配置命中 localhost 8043,并且没有填写其他字段。
docker 容器正在挂载源文件,所以我确信他们正在查看完全相同的源文件。
项目配置在src/ 和bin/ 目录的正上方有一个内容根,它也被设置为项目GOPATH。没有全局 GOPATH,所有依赖项都在 src/ 树中。索引所有内容的复选框已选中。
关于为什么我的 IDE 看不到我的源代码或在我的断点处停止的建议?
【问题讨论】:
-
我建议在问题跟踪器youtrack.jetbrains.com/issues/GO 上创建一个工单,以便能够在此处而不是此处提供更多信息。
标签: debugging go remote-debugging goland