Golang:Delve版本太低无法Debug

过愙 · · 1758 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

问题描述

今天把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 重启就可以了


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:过愙

查看原文:Golang:Delve版本太低无法Debug

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1758 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传