goland 断点调试的问题

添加一个gobuild 

参考: Golang以及Goland配置-优快云博客

问题背景说明
因依赖问题要求GO版本需要从1.18.x版本升级到1.23.x,升级后,Test 启动 debug时,发现打断点的红点一闪而过,出现一个失效的标志(一个灰色圆圈+斜杠),在经过百度大法后,原来高版本(1.20及以上版本)会出现debug断点无效的现象。

解决方案
经过资料查阅,发现是因为go高版本问题,导致dlv插件失效,github上提供了源代码,可以clone下来打包,并把dlv文件放到指定的目录。

第一步 拉取delve源代码
git clone https://github.com/go-delve/delve.git

第二步 编译并打包成dlv可执行文件
cd cmd/dlv

go build

执行完毕后,当前目录下多出一个dlv可执行文件 

第三步 复制dlv文件到goland插件目录
mac电脑:

goland 新版本(大于等于23年版本)

cp dlv /Applications/GoLand.app/Contents/plugins/go-plugin/lib/dlv/mac

goland老版本(小于23年版本)

cp dlv /Applications/GoLand.app/Contents/plugins/go/lib/dlv/mac

windows电脑:

将打包的dlv.exe文件复制到goland安装目录下的

goland 新版本(大于等于23年版本)

plugins/go/go-plugin/lib/dlv/window

goland老版本(小于23年版本)

plugins/go/lib/dlv/window

最后一步 重启goland
此时再次启动debug断点已出现显眼的红勾,断点成功

感谢以下博主分享:
Goland无法进入调试断点修复! - KURO、Liang - 博客园
完整使用(包括远程debug)
go调试工具-delve-优快云博客
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.youkuaiyun.com/jamlin456/article/details/142686924

### Goland 调试功能失效解决方案 当遇到 Goland调试功能失效的情况时,可以尝试以下几个方法来解决问题。 #### 1. 更新 Go 版本和 IDE 插件 如果最近更新了 Go 到最新版本(如提到的 1.23),可能会导致兼容性问题。建议确认当前使用的 GoLand 是否支持该版本的 Go 编译器[^1]。 同时也应确保所有插件都是最新的稳定版。 #### 2. 配置 Delve 工具链 对于某些特定平台上的用户来说,配置正确的 delve 设置可能是必要的。例如,在 M1 MacBook 上曾有报告指出通过安装适用于 ARM 架构的 delve 可以解决无法正常工作的 debug 功能[^3]。 使用命令 `go install github.com/go-delve/delve/cmd/dlv@latest` 来获取最新版本的 delve 并将其路径加入环境变量中。 #### 3. 清理缓存并重启项目 有时简单的清理操作也能有效恢复调试模式下的断点响应情况。关闭 Goland ,删除 `.idea` 文件夹以及项目的构建目录后再重新打开工程可能有助于排除一些临时性的错误状态[^2]。 ```bash rm -rf .idea/ rm -rf ./build/ ``` #### 4. 修改编译选项 调整编译参数也可能帮助改善这一状况。可以在 Run/Debug Configurations 对话框中的 Build Tags 和 Env Variables 字段里添加 `-gcflags="all=-N -l"` 参数,这会禁用内联优化从而使得设置的断点更可靠地触发。 ```json { "env": {}, "args": [], "program": "${workspaceFolder}/main.go", "dlvLoadConfig": { "followPointers": true, "maxVariableRecurse": 1, "maxStringLen": 64, "maxArrayValues": 64, "maxStructFields": -1 }, "mode": "debug", "processArgs": null, "apiVersion": 2, "showLog": false, "trace": false, "callTrace": false, "gcFlags": "-N -l" } ``` #### 5. 检查防火墙和其他安全软件的影响 部分情况下,本地或公司网络内的防护措施也会干扰 goland 进行正常的远程调试连接过程。因此应当检查是否有任何阻止程序间通信的安全策略正在生效,并适当放宽权限以便允许 delve 正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值