目 录CONTENT

文章目录
Go

Golang:Delve版本太低无法Debug

过客
2020-06-16 / 0 评论 / 0 点赞 / 10 阅读 / 0 字

问题描述

今天把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

更新dlv到最新版本。更新后dlv.exeGOPATH的bin目录下,我这里是F:/Go/bin/

go install github.com/go-delve/delve/cmd/dlv@latest

注:如果install失败,可以直接去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 重启就可以了

3. 如果还报错Connection refused

如果Debug还是报错

Connection refused: getsockopt: localhost/127.0.0.1:61148

检查端口61148dlv.exe监听的

C:\Users\Administrator>netstat -ano | findstr 61148
  TCP    127.0.0.1:61148        127.0.0.1:61149        ESTABLISHED     20344

C:\Users\Administrator>tasklist | findstr 20344
dlv.exe                      20344 Console                    1     55,012 K
  • 若未发现dlv,则是dlv.exe未启动,或者是端口被其他程序占用了,确认第二步中的dlv.path配置是否正确,若是被其他程序占用了,可以重新启动debug来切换端口再试
  • 若确认了dlv监听的端口,防火墙/安全软件添加 F:/Go/bin/dlv.exe 后再尝试。
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区