目录

goland debug 变量 unreadable invalid interface type

一、问题

最近开发工具 idea goland 突然就“抽筋”了, 也不知道为什么,之前 debug 都是正常的,突然就出现变量展示错误:

unreadable invalid: interface type

意思是这个类型错误,无法读取

但是通过打印日志,是可以正常的

如下图:

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

二、原因

从官方的 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

    注意⚠️:

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

    2. 建议在打开 【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/