VScode 中的断点无法调试 golang

Break points not working debbuing golang in VScode

我在调试一个用golang完成的项目时遇到问题,项目编译正确并且运行完美,但是当我添加断点时,控制台returns出现以下错误. 我没有使用 rosetta。

我也设法用 GoLand (IDE JetBrains) 重现了同样的问题

如果我删除断点并继续该过程,项目将继续 运行 而不会出现错误。问题是VScode找到断点的时候。

我正在使用 macOS Big Sur 版本 11.3 (20E232)

我使用的是哪个版本的 Go (go version)?


    $ go version go1.16.3 darwin/arm64

我使用的是什么操作系统和处理器架构 (go env)?

go env输出
$ go env
GO111MODULE="on"
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/thomascaycedomartinez/Library/Caches/go-build"
GOENV="/Users/thomascaycedomartinez/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/thomascaycedomartinez/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/thomascaycedomartinez/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.16.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/2x/7xq8cphj5gzc5lq2fbbl3vtw0000gn/T/go-build3536386239=/tmp/go-build -gno-record-gcc-switches -fno-common"

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": "kuenta backend",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/cmd/kuenta",
            "env": {
                "HOSTNAME": "localhost"
            },
            "args": []
        }
    ]
}

你期待看到什么?

断点应该可以正常工作。

好吧,简而言之,这是 macOS Big Sur 11.3 (20E232) 的最新更新中明显出现的问题

部分解决此问题直至修复。

  • 您需要克隆dlv存储库并添加以下代码块

  • 重建 dlv 并将其复制到临时路径。

  • 去戈兰selectEdit Custom Propierties

  • 在我的案例中添加路径以在新行上钻研 dlv.path=/Users/thomascaycedomartinez/go/bin/dlv

  • 保存文件,即可正常调试

  • 要查看更多信息可以访问本期https://github.com/go-delve/delve/issues/2436