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
我在调试一个用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 并将其复制到临时路径。
去戈兰select
Edit Custom Propierties
在我的案例中添加路径以在新行上钻研
dlv.path=/Users/thomascaycedomartinez/go/bin/dlv
保存文件,即可正常调试
要查看更多信息可以访问本期https://github.com/go-delve/delve/issues/2436