解决低版本 GoLand 启动服务报 Version of Delve is too old for this version of Go

今天算是入职新公司的第一天,配置好开发环境后,尝试用 GoLand 来启动服务,结果报了:Version of Delve is too old for this version of Go (maximum supported version 1.13, suppress this error with --check-go-version=false) 这个错误。

查询后发现这个是 JetBrain 在将 delve 嵌入到 他们的 IDE 时导致的 bug,按照官方的说法是升级 IDE 就可以解决了。详细讨论见这个 issue:https://github.com/go-delve/delve/issues/1710

但是我的 ToolBox 在 Check for updates 时没有响应,所以需要通过其他方式进行了解决。

更新 dlv,并将 GoLand 中的 dlv 路径指向更新后的路径

1) go get -u github.com/go-delve/delve/cmd/dlv
2) 执行以下命令并将打印的路径复制下来:

1
2
3
4
➜ echo `go env | grep GOPATH | cut -d "\"" -f 2`/bin/dlv

# 以下是打印的结果,进行复制
/Users/jiapan/go/bin/dlv`

3) 在 GoLand 中 Help -> Edit Custom Properties(之前没编辑过会提示新建)
4) 新增一项 dlv.path={你复制的路径},比如我的:

1
dlv.path=/Users/jiapan/go/bin/dlv

再次启动服务,问题解决。

delve 是 go 语言的 debug 工具,delve 的意思是:钻研、探索,用这个来命名一个 debug 工具还是非常形象的。