无法在 Mac M1 上使用 VSCode 运行调试 Go

cro*_*ght 23 go visual-studio-code vscode-debugger apple-m1

我发现一个遇到同样问题的主题(Can't debug Golang in vscode apple m1)但我不确定它是否是一个旧的解决方案,因为我使用的是 Go 版本

go1.17.1 darwin/arm64 
Run Code Online (Sandbox Code Playgroud)

dlv version 1.7.2 
Run Code Online (Sandbox Code Playgroud)

VSCode version 1.60.2 (arm64)
Run Code Online (Sandbox Code Playgroud)

Mac M1 BigSur (11.6)
Run Code Online (Sandbox Code Playgroud)

当我运行 debug ( 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
Run Code Online (Sandbox Code Playgroud)

并且出现弹出错误:

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
Run Code Online (Sandbox Code Playgroud)

我尝试使用 dlv 1.6.1 将 go 版本降级到 1.16.8 arm64 但仍然遇到相同的错误。

我可以在两个版本上成功使用 go build 。

Pra*_*dey 37

这是我解决这个问题的方法。

  1. 卸载 Golang(AMD-64 版本)。
  2. 安装Golang(ARM-64)。确认它go env GOARCH
  3. 从中删除(VS-Code 使用的工具)二进制文件$GOPATH/bin重要
  4. 重新启动您的 VS-Code 并安装 VS-Code 所需的工具(如果未安装,vscode 会抱怨并要求您安装它们)

问题的根本原因:我不小心安装了amd-64版本而不是arm-64我的Apple Mac M1.

感谢Painhardcore 的回答为我指明了正确的方向。

  • 谢谢,这有帮助!这里需要注意的是,从 1.18 开始,似乎 `$GOPATH/bin` 不再使用,而是使用 `~/go/bin`。请参阅/sf/answers/3115428781/ (4认同)
  • 您还可以通过以下方式重新安装 VS Code 使用的工具: 1. 按 F1,然后 2. `转到:安装/更新工具` 3. 选择要重新安装的工具 (3认同)

小智 29

  1. 确保您的 VSCode 使用 arm64 版本。(可以使用与系统不同的go版本)

  2. 运行Go:安装/更新工具。它将使用arm64 go版本重建所有工具。

  • @PeterMcIntyre我所做的是观察vscode正在使用的dlv-dap命令的位置(注意问题中的“Starting:/Users/username/go/bin/dlv-dap ...”),然后验证这是相同的go 我已经使用“which go”在 PATH/命令行中进行了配置(它可以不同,据我所知 vscode 基于 GOPATH go 环境变量)。运行“go 版本”我发现我使用的是 darwin/amd64,而不是 ARM。我从 https://go.dev/dl/ 下载了正确的版本并替换了它(通过删除整个“go”目录并将新目录放在其位置) (4认同)
  • 你能详细说明一下吗?“确保你的 VSCode 使用 arm64 版本”...如何? (3认同)

Tus*_*ati 9

对我有用的:

  1. 检查您的 Mac 正在使用的“芯片”,您可以从"About This Mac" > "Overview" > "Chip"
  2. 如果使用Apple芯片,则下载“arm64”类型的文件,例如“go-darwin-arm64.pkg”、“vscode-arm64”等。你明白我的意思了。
  3. 如果使用Intel芯片,则以“amd”类型下载。
  4. 从https://github.com/go-delve/delve/tree/master/Documentation/installation下载并安装“DELVE”
  5. 运行你的调试器。

如果您也想要“launch.json”文件配置进行调试,请告诉我。

编辑 11-04-22

共享 launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/main.go",
            "args": [],
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)