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 断点调试

环境恢复

相关推荐
木子欢儿几秒前
AirScreen 安卓平板作为MacOS副屏
macos·电脑
符小易1 小时前
Mac M4苹果电脑M4上支持的AE/PR/PS/AI/ID/LrC/AU/DC/ME有哪些?
人工智能·macos
Mac分享吧2 小时前
狂野飙车8+(Asphalt 8+) for Mac 赛车竞速游戏 安装教程
游戏·macos·游戏程序·macbook·玩游戏·苹果电脑·狂野飙车
麦麦大数据2 小时前
如何在macos上通过虚拟机搭建spark+hadoop分布式环境(一)
分布式·macos·spark·wmware
bon_ami2 小时前
macOS 12 Monterey
macos
爱设计的小王5 小时前
无需Mac:即时设计让Sketch文件编辑更简单
macos·ui·sketch
skywalk81637 小时前
OmniDiskSweeper :一款专为 macOS 设计的磁盘使用分析工具
macos·磁盘
Narutolxy12 小时前
从 Mac 远程控制 Windows:一站式配置与实践指南20241123
windows·macos
WeeJot嵌入式16 小时前
macOS开发环境配置与应用开发指南
macos
ZQDesigned17 小时前
在 Windows 和 macOS 上配置 Golang 语言环境
后端·go