Golang:Delve版本太低无法Debug

问题描述

今天把Go从1.12版本升到了1.14,然后发现在Goland进行Debug时就报错了。

Version of Delve is too old for this version of Go (maximum supported version 1.12, suppress this error with --check-go-version=false)

环境说明

Goland 版本为 2019.2.1

go env
set GOARCH=amd64
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=F:\Go
set GOPROXY=https://mirrors.aliyun.com/goproxy/
set GOROOT=C:\Go
set GOSUMDB=sum.golang.org
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\Administrator\AppData\Local\Temp\go-build054006970=/tmp/go-build -gno-record-gcc-switches

分析

这是因为本地delve组件版本过低导致的,2019.2.1版本的Goland默认支持go 1.13

查看F:\Go (GOPATH目录)目录下存在github.com/go-delve/delve/cmd/dlv,而且bin目录下也存在dlv.exe文件,用命令行执行 dlv.exe version得到的版本是1.2.1

解决办法

1. 更新dlv

因为本地已经存在,所以,需要用到-u参数,强制更新包以及依赖

go get -u github.com/go-delve/delve/cmd/dlv

注:如果get失败,可以直接去github用git下载github.com/go-delve/delve/cmd/dlv
然后命令行进入到下载好的目录,直接go build编译dlv,将编译好的dlv.exe复制到F:/Go/bin/目录下

2. 设置Goland

打开 Hele->Edit Customer Properties,若提示文件不存在,点击创建。然后在新加一行 dlv.path=F:/Go/bin/dlv.exe 重启就可以了

0%