go idea goland debug err unreadable invalid interface type
一、问题
最近 idea goland 不知道为什么,在 debug 的时候,其他变量都能正常的显示具体的值,但是 debug err 变量时却提示:
unreadable invalid: interface type
这就难受了,只能通过打印查看具体的 error 错误
二、原因
根据官方也有人提出这个问题:
https://youtrack.jetbrains.com/issue/GO-17798/Unreadable-invalid-interface-type-in-Debugger
大概的解决方法就是升级最新版本……
但是我又不想更新 goland,一顿搜索后:看了下 go-delve 的 issues 发现也有这个问题,
https://github.com/go-delve/delve/issues/2593
最后的结论(猜测):
安装的 goland 的版本比较旧,用的 go 版本比较新,而 goland 内置了 dlv debug 工具
所以用旧版本去 debug 一个新版本 go,当然会有一些小问题……
三、解决
-
(推荐,兼容好,风险小)升级 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,岂不是更好???
你们觉得还有什么好的解决方法吗?欢迎👏大家评论区一起分享!!!