查询了很多资料文章,下面这篇给了启发,记录一下我的解决方案
https://blog.csdn.net/zsi386/article/details/116357850?spm=1001.2014.3001.5501
问题描述
我的环境:
-
go version : go1.16.5 darwin/arm64. (下载时记得下载arm架构的)
-
goland version: 2020.3
-
mac version:Big Sur 11.4 MacBook Air m1芯片
调试出现的问题:
可以断点停下来,但是无法下一步和查看变量,无报错
断点都不可以停下的需要检查一下go的版本是否下载的arm架构
https://studygolang.com/dl
解决方法
下载go-delve/delve
git clone https://github.com/go-delve/delve.git
下载慢的可以用这个:git clone https://github.com.cnpmjs.org/go-delve/delve.git
可以把它放在了GOPATH下的src/github.com//go-delve下,进入clone下来的delve中(cd delve
),切换分支:
git checkout -b darwin-arm64-lldb
然后进入工程目录cd ./cmd/dlv/
,重新编译:
go build
go install
(不需要修改代码,目前1205 bug估计已修复)
会在你的GOPATH/bin
下重新生成二进制文件dlv
我的版本信息:
Delve Debugger
Version: 1.6.1
Build: $Id: 114218c22f3791287c4bc2f4ff35a846a1416ee9 $
设置你的goland (Help>Edit custom properties
)指向它就可以:
dlv.path=/path/to/dlv
(路径要改),然后可以debug了:
出现原因
dlv老版本bug:
Big Sur11.3,lldb成了1205,dlv处理了1200,没处理1205
更新版本即可