解决undefined behavior - version of Delve is too old for Go version 1.20.-1 (maximum supported version

当Goland中的内置dlv版本过低而Go版本过高时,调试会出错。解决方法包括在$GOPATH/pkg/mod/目录下查找或通过goget命令获取最新版dlv,然后编译得到dlv.exe,并将其替换到Goland的特定目录。在Linux环境下,同样通过goinstall获取最新dlv,并将其放置在全局路径下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是由于goland中自带的dlv版本较低、go版本较高,此时进行debug就导致这个报错。

目录

第一步:得到可执行文件

解决办法1

解决办法2

第二步:替换旧的dlv

Linux下如何产生dlv可执行文件


第一步:得到可执行文件

解决办法1

$GOPATH\pkg\mod\github.com下看有没有go-dlv这个包

如果有:
进到dlv包目录下,进行编译得到dlv.exe可执行文件:

$GOPATH\pkg\mod\github.com\go-delve\delve@v1.20.2\cmd\dlv 
go install

如果没有dlv包说明之前没有拉取过,可执行;

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

拉取到本地成功后去上面$GOPATH目录下找到dlv
并进入到dlv的\cmd\dlv, 执行 go install

git clone https://github.com/go-delve/delve.git

在哪个目录clone的就在哪个目录下进入到dlv的\cmd\dlv
执行 go install


解决办法2

可直接执行以下指令得到此文件:

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


第二步:替换旧的dlv

install后,在

$GOPATH\bin

目录下找到dlv.exe并复制到

GoLand安装目录\plugins\go\lib\dlv\windows

目录下。

搞定!

Linux下如何产生dlv可执行文件

也是一样:

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

然后在$GOPATH/bin下可找到

# whereis dlv
dlv: /root/gowork/bin/dlv

传到需要的机器的

/usr/local/bin/

目录下就可以全局使用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProblemTerminator

您的鼓励将是作者最大的动力哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值