goland debug 变量 unreadable invalid interface type
一、问题
最近开发工具 idea goland 突然就“抽筋”了, 也不知道为什么,之前 debug 都是正常的,突然就出现变量展示错误:
unreadable invalid: interface type
意思是这个类型错误,无法读取
但是通过打印日志,是可以正常的
如下图:
二、原因
从官方的 issue 中发现:这个问题只能通过升级 goland 来解决(不想升级,你懂得…..)
https://youtrack.jetbrains.com/issue/GO-17798/Unreadable-invalid-interface-type-in-Debugger
又从 go debug issues 中也发现了这个问题,
https://github.com/go-delve/delve/issues/2593
最后的结论(猜测):
golang 的版本较高,而本地使用的 goland 版本较低(它内置了某个版本的 debug 工具)所以导致用旧的 debug 工具去debug 新的 golang 就会出现这个问题
现在想起来确实最近升级了 golang 版本,尝试切换历史版本后确实能够正常 debug (原因算是实锤了)
三、解决
-
(推荐,兼容好,风险小)升级 goland 版本
-
goland 配置使用新版本的 dlv debug 工具
最终我还是选择用这个方式
下载 dlv 工具
go install github.com/go-delve/delve/cmd/dlv@latest
执行成功后,$GOPATH/bin 目录下会多一个 dlv (我这里是 mac,win 应该会有后缀.exe ,也有的是 delve.exe)
Goland 配置自定义 debug 工具
打开goland,配置 dlv的执行路径: 选 help>>Edit Custom Properties
添加以下内容,然后重启:
custom GoLand properties (expand/override 'bin/idea.properties') dlv.path=$(你的GOPATH)/bin/dlv
注意⚠️:
-
dlv 是 $GOPATH/bin目录的可执行文件,如果配置重启后报错找不到,自行打开目录检查是否有该文件,可能是别的类似的名称
-
建议在打开 【Edit Custom Properties】 文件时,先右键–> Open in 打开在本地目录
找到该文件所在的电脑位置,要不然等下你要是改错了,goland 直接就启动不了,真的很无助,一旦启动不了,你找到本地刚才修改的 idea.properties ,删除错误的配置,重启就可以了
-
到这里几乎算解决了,但是感觉不是很完美…
要是能够将下载的 dlv 文件直接替换 goland 内置的 dlv,岂不是更好???
你们觉得还有什么好的解决方法吗?欢迎👏大家评论区一起分享!!!
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/go-idea-goland-debug-err-1/
备用原文链接: https://blog.fiveyoboy.com/articles/go-idea-goland-debug-err-1/