目录

go idea goland debug err unreadable invalid interface type

一、问题

最近 idea goland 不知道为什么,在 debug 的时候,其他变量都能正常的显示具体的值,但是 debug err 变量时却提示:

unreadable invalid: interface type

这就难受了,只能通过打印查看具体的 error 错误

/img/go-idea-goland-debug-err-1/1.png
debugerr错误

二、原因

根据官方也有人提出这个问题:

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

    注意⚠️:

    1. dlv 是 $GOPATH/bin目录的可执行文件,如果配置重启后报错找不到,自行打开目录检查是否有该文件,可能是别的类似的名称

    2. 建议在打开 【Edit Custom Properties】 文件时,先右键–> Open in 打开在本地目录

      找到该文件所在的电脑位置,要不然等下你要是改错了,goland 直接就启动不了,真的很无助,一旦启动不了,你找到本地刚才修改的 idea.properties ,删除错误的配置,重启就可以了

到这里几乎算解决了,但是感觉不是很完美…

要是能够将下载的 dlv 文件直接替换 goland 内置的 dlv,岂不是更好???

你们觉得还有什么好的解决方法吗?欢迎👏大家评论区一起分享!!!