本文介绍: 背景:在使用 m1 芯片的 mac ,进行 go 项目开发时,发现 debug 模式无法正常调试。
背景:在使用 m1 芯片的 mac ,进行 go 项目开发时,发现 debug 模式无法正常调试。
版本环境
go
: 1.20.1
goland
: 2021.1.3
无法使用调试模式
mac m1 环境下启动 goland 后,发现无法正常使用 debug 模式,接口请求后会直接卡死。
原因: go 版本过高,go >= 1.20 的版本下,goland 的 debug 会失败。
将 go 版本回退至 1.9.x,操作方法如下:
- 删除旧的go版本,go配置文件、环境变量等:
sudo rm -rf $GOROOT
,sudo rm -rf $GOPATH
,rm -rf /etc/paths.d/go
,vim ~/.bash_profile(清除go相关环境变量)
- 在官网选择下载所需的新版本,go官网地址,这边我使用的是 1.19.10 。
- 按照步骤安装完成,随后通过命令
go version
查看是否安装完成。 - 创建 gopath 路径:
mkdir youpath/go
。
切换为对应的版本后,打开 goland 启用调试模式,发现可以进行debug并使用断点了。
调试模式无法下一步
在调试模式下,可以通过 步过(step over)一行行运行代码,这边运行项目时,发现无法使用 步过 进行代码调试,在网上查询了很多方法都不行,尝试自己寻找解决办法。在通过 goland 开启 debug 模式时,发现是通过 goland 内置的 dlv 启动的,于是怀疑是否因为 dlv 的问题。
下载新的dlv
执行以下命令,覆盖 goland 默认的 dlv:
// 1.找到 goland 使用的 dlv 的目录,我这边是:/Applications/GoLand.app/Contents/plugins/go/lib/dlv/macarm/
// 2.把生成的新的 dlv 复制至goland 使用的 dlv 的目录下。
git clone https://github.com/go-delve/delve.git
cd delve/cmd/dlv
go build -o GoLand.app/Contents/plugins/go/lib/dlv/macarm/dlv main.go
执行完上述操作后,重启 goland 启动 debug 模式,发现已经可以正常使用。
原文地址:https://blog.csdn.net/tlqwanttolearnit/article/details/135392768
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_54356.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。