MacOS M1/M2 Go Debug 配置

前言

换电脑,Go 环境带来一些麻烦,耽误很多时间,稍作记录。

原始电脑是 Mac 旧款,CPU x86 构型,新电脑 M2,因为旧电脑里本地文件很多,为了简化搬迁,还是用了 Mac 自带的迁移,会有调试环境问题意料中,因为先前有朋友 x86 -> M1,解决起来也不困难所以也选择了同步,不过自己还是踩坑花了很多时间修复。

核心问题就是 Go 环境问题,不能 Debug

异常表现

Go Run 异常

Go 的工程不可跑,因为迁移过来 Go 还停留在安装的 x86 版本上,必须卸载重装

shell 复制代码
$ which go  # 找到 go 命令所在路径,删到外面的 go 层
$ rm -rf /usr/local/go
$ rm -rf /etc/paths.d/go

如果 rc 文件里有一些设定,也清掉

Go 重新安装

一定要下载类似 go1.19.10.darwin-arm64.pkg 这种 darwin-arm64 的安装包,一路安装后,go version 运行正常即可

后续 go run 一个 hello world 正常表示通过

Debug 异常

后续可以看到 Debug 仍然不可以正常执行,因为 Go 的 Debug 用的 dlv 低版本也是不支持的,因此也需要重装,卸载 dlv 类似 卸载 Go,找到命令所在路径,卸载,而后安装。

安装成功后,尝试 debug,进入了痛苦环节。

could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture

这个报错卡了非常多时间,也查了各种材料,多数是反馈 Go 版本不对,Go 环境变量有问题,反复尝试,各种换 Go 版本,dlv 版本

无果

Debug 异常解决

彻底清除所有跟 Go 相关的文件,工具,终得解决

  1. 重新卸载 Go,类似先前步骤
  2. 卸载 Goland,上文的 dlv 不可用 Goland 更是不能 Debug,期间还有各种奇怪情况,删干净,可以用 cleaner one 扫下应用相关文件,都给删了
  3. 卸载删除 dlv
  4. 因为本地曾经安装过 gvm 用来多版本管理,删除所在文件
  5. 原本 ~/go 删除,因为里面比较多本地工程,所以 mv backup 一下,别真删了

之前所有的 重装主要在 Go,dlv,Goland 上,

此外也尝试了 卸载调试xcode,重装

shell 复制代码
# 卸载
$ sudo rm -rf $(xcode-select -print-path)
# 重装
$ xcode-select --install 

没有后面二者,都没成功,清理干净而后重装

  1. 重装 Go,这次装的还是 1.21
  2. 重装 Goland
  3. 重装 dlv,问题来了

dlv 先前尝试时,手动安装,brew 安装均未成功 debug,本次想 brew 简化点装,装完后,Debug 仍获得上图错误,因为 brew 也是从原先机器环境同步过来的,不建议这种方式安装。

再次卸载 dlv 手动装,请见:https://github.com/go-delve/delve/tree/master/Documentation/installation

而后最终成功通过

稍加注意,Go 环境变量

复制代码
GOARCH='arm64'
GOHOSTARCH='arm64'
GOHOSTOS='darwin'

Goland 安装也要选择 apple M2的那种版本,类似 goland-2023.3.2-aarch64.dmg

在没有安装 dlv 时 Goland 也是不能进行 Debug 的,会提示你配置 dlv 路径
Help -> Edit Custom Properties 添加
dlv.path=/your/dlv/path

而后 Goland 断点调试

环境恢复

相关推荐
搜狐技术产品小编20233 小时前
CAEmitterLayer:iOS 中创建炫酷粒子效果的魔法工具
macos·ios·objective-c·cocoa
程序员爱钓鱼6 小时前
Go语言实战案例 — 工具开发篇:编写一个进程监控工具
后端·google·go
刘媚-海外17 小时前
Go语言开发AI应用
开发语言·人工智能·golang·go
未来之窗软件服务19 小时前
操作系统应用开发(七)mac苹果模拟器——东方仙盟练气期
macos·仙盟创梦ide·东方仙盟·系统模拟器
liliangcsdn19 小时前
Mac本地docker安装Kibana+ElasticSearch
elasticsearch·macos·docker
千寻简19 小时前
远程连接Mac操作ClaudeCode一直提示登录Invalid API key · Please run /login
macos
小朋友,你是否有很多问号?19 小时前
Mac安装hadoop
hadoop·macos
Aurora_NeAr21 小时前
Golang并发编程及其高级特性
后端·go
郭京京1 天前
goweb模板语法html/template
后端·go
Yvonne爱编码1 天前
后端编程开发路径:从入门到精通的系统性探索
java·前端·后端·python·sql·go