Golang Go语言中 Goland dlv remote debug 问题

求助,使用 goland dlv remote debug 本地起的一个 docker container,在 goland 里面可以 connect 到 containter 中 dlv 的端口,但是断点都打不上。。。


Golang Go语言中 Goland dlv remote debug 问题
9 回复

--cap-add SYS_PTRACE 给了吗

更多关于Golang Go语言中 Goland dlv remote debug 问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


#1 docker 为例: --cap-add SYS_PTRACE --security-opt seccomp=unconfined

这个确实漏掉了,不过加上了还是一样的结果

debug 本地代码试一试, 大概率不是 remote container 的 bug, apple silicon 在自带 dlv 版本会无法 attach, 自己装下 dlv, 升级下版本试试

配过一次 vscode 远程调试 docker 里的进程,把端口映射和目录配置对好就行。不过都要升级到最新版本。

我配的时候断点失败是 substitutePath 没配对。

https://github.com/golang/vscode-go/wiki/debugging

编译命令和本地 dlv 运行命令贴一下?

编译命令要加 go build -gcflags=“all=-N -l”

试试 cmd 直接 dlv ,如果可以,则检查 ide 的 dlv path

在Go语言开发中,使用Goland和Delve(dlv)进行远程调试是一个常见的需求,尤其是在分布式系统或容器化环境中。以下是一些关键步骤和注意事项,帮助你解决Goland与dlv远程调试的问题:

  1. 确保Delve版本与Go版本兼容:首先,确认你安装的Delve版本与你的Go语言版本相匹配。不兼容的版本可能会导致调试会话无法正确启动。

  2. 配置远程调试参数:在启动你的Go程序时,使用Delve的远程调试模式。例如,你可以通过dlv --listen=:2345 --headless=true --api-version=2 exec ./your_program命令来启动程序,并监听2345端口。

  3. Goland配置:在Goland中,打开“Run/Debug Configurations”对话框,添加一个“Go Remote”配置。在这里,你需要指定远程调试服务器的IP地址和端口(如上面的2345端口)。

  4. 防火墙和网络配置:确保你的防火墙和网络设置允许从Goland到Delve所在机器的通信。这可能涉及到开放特定的端口或配置NAT规则。

  5. 调试会话管理:一旦连接建立,你可以在Goland中设置断点、查看变量和调用堆栈,就像在本地调试一样。

  6. 日志和错误信息:如果调试会话未能成功建立,请检查Goland和Delve的日志输出,以获取可能的错误信息。

遵循这些步骤,你应该能够成功地在Goland中使用Delve进行远程调试。如果遇到具体问题,可以提供更详细的错误信息以便进一步分析。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!