我发现一个主题遇到了同样的问题(Can't debug Golang in vscode apple m1),但我不确定这是不是一个旧的解决方案,因为我使用的是Go版本
go1.17.1 darwin/arm64
与
dlv version 1.7.2
以及
VSCode version 1.60.2 (arm64)
在
Mac M1 BigSur (11.6)
当我运行调试(fn+f5
)时,调试控制台显示:
Starting: /Users/username/go/bin/dlv-dap dap --check-go-version=false --listen=127.0.0.1:53115 --log-dest=3 from /Users/username/go/src/project-name
DAP server listening at: 127.0.0.1:53115
并且出现弹出错误:
Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
我试过用dlv 1.6.1将go版本降级到1.16.8 arm64,但仍然得到同样的错误。
我可以在两个版本上成功地使用go build。
8条答案
按热度按时间disbfnqx1#
以下是我解决这个问题的方法。
1.安装Golang(ARM-64),用
go env GOARCH
确认1.从
$GOPATH/bin
中删除(VS-Code使用的工具)二进制文件(重要)1.重新启动您的VS-Code并安装VS-Code所需的工具(如果没有安装,vscode会抱怨并要求您安装它们)
问题的根本原因:我不小心在我的
Apple Mac M1
中安装了amd-64
版本而不是arm-64
版本。感谢Painhardcore的回答为我指出了正确的方向。
toe950272#
1.确保您的VSCode使用arm 64版本。(它可以使用与系统不同的go版本)
carvr3hs3#
对我有效的方法:
1.检查你的mac正在使用的“芯片”,你可以从
"About This Mac" > "Overview" > "Chip"
检查1.如果使用苹果芯片,那么下载“arm 64”类型的文件,如“go-darwin-arm64.pkg”,“vscode-arm 64”等。
1.如果使用英特尔芯片,则使用“amd”类型下载。
1.从https://github.com/go-delve/delve/tree/master/Documentation/installation下载并安装“DELVE”
1.运行调试器。
让我知道,如果你想“launch.json”文件配置太,调试。
2012年4月11日编辑
共享launch.json
5gfr0r5j4#
这个答案对我有效。安装ARM64并重试。
https://github.com/go-delve/delve/issues/2604#issuecomment-1069740132
ztigrdn85#
从https://github.com/go-delve/delve/tree/master/Documentation/installation下载并安装
DELVE
对我很有效
vql8enpb6#
写这个,以便任何人面临同样的问题,而迁移到M1 mac可以得到所有所需的信息在一个地方。
我在将数据从我的Intel Mac迁移到M1(使用苹果迁移助手)后遇到了这个问题,所以基本上,Amd 64的Go二进制文件和VSCode被复制到了M1 Mac(Arm 64)
因此,我不得不卸载(删除所有与Go语言相关的文件,即位于
/home/<my_user>/go
和位于/usr/local/go
的Go语言可执行文件),并为arm 64重新安装Go语言和vscode。发布后,我在使用delve在vscode中运行调试器时遇到错误
could not launch process: EOF
,为了解决这个问题,我引用了github线程-https://github.com/go-delve/delve/issues/2794并执行以下步骤:
在那之后,我就可以使用delve来调试vscode中的代码了
kwvwclae7#
Go安装主页(https://go.dev/doc/install)提供了一个“下载”按钮,即AMD 64。您必须转到以下位置:https://go.dev/dl/
并选择正确的架构。一旦你完成了,你需要卸载已经提到的@prakash-p.
然后你还需要在vs代码中重新安装go工具,就像@iamcmnut提到的那样
cetgtptt8#
解决方案
问题是你安装了非M1版本的GoLang和/或VSCode。Go和VSCode都有英特尔和苹果芯片的版本。你需要两者都是arm 64(苹果硅)版本
如果您没有使用arm 64发行版安装GoLang和VSCode,那么这就是问题所在。
要解决此问题:
*完全删除GoLang:
sudo rm -rf /usr/local/go
sudo rm /etc/paths.d/go
sudo rm -rf ~/donald/go
(用您自己的帐户名替换donald
)*完全删除VSCode:
rm -fr ~/Library/Preferences/com.microsoft.VSCode.helper.plist
rm -fr ~/Library/Preferences/com.microsoft.VSCode.plist
rm -fr ~/Library/Caches/com.microsoft.VSCode
rm -fr ~/Library/Caches/com.microsoft.VSCode.ShipIt/
rm -fr ~/Library/Application\ Support/Code/
rm -fr ~/Library/Saved\ Application\ State/com.microsoft.VSCode.savedState/
rm -fr ~/.vscode/
.go
文件。就这样!你现在应该可以走了👍