苹果M1芯片Mac上使用VSCode调试Go程序失败该如何解决?
报错核心原因是当前调用的delve调试工具为x86架构,在M1芯片上运行时触发了Rosetta转译限制,可按如下步骤排查解决:
排查解决步骤
- 校验delve架构
打开终端执行如下命令,确认返回的架构标识为arm64:
若返回值包含file $(which dlv) file $(which dlv-dap)x86_64,说明当前安装的delve为x86转译版本,需要重装。 - 清理旧版残留
执行命令清理已安装的dlv组件,同时手动进入$GOPATH/bin目录,删除dlv、dlv-dap两个可执行文件:go clean -i github.com/go-delve/delve/cmd/dlv - 安装原生arm版delve
必须在未开启Rosetta转译的原生arm终端下执行安装命令:
安装完成后再次用go install github.com/go-delve/delve/cmd/dlv@latestfile命令校验,确认返回arm64架构即可。 - 修改VSCode Go插件配置
打开VSCode设置,搜索go.dlv.path,将配置值修改为你安装的arm版dlv的绝对路径,示例:
再搜索/Users/你的用户名/go/bin/dlvgo.delveConfig.debugAdapter,将值设置为dlv-dap,确保调用适配arm架构的调试适配器。 - 校验VSCode运行模式
右键Finder中的VSCode图标,点击「显示简介」,确认「使用Rosetta打开」复选框未被勾选。
配置完成后重启VSCode再次启动调试即可正常运行。
内容的提问来源于stack exchange,提问作者cross_knight
相关产品推荐
相关产品推荐

