解决升级 mac os 后 Golang debug 失效的问题

2025-04-04 17:57:41

升级到 Mac 15 后,idea 以及 vscode 都无法 debug, 断点总是进入到 proc.go 里面,本文主要解决该问题。

要解决该问题,需要两步:

  1. 降级 xcode-select;
  2. 升级 delve;

xcode-select 降级

前往 https://developer.apple.com/download/all/ 搜索 Command Line Tools , 降级到前一个版本,如果还是不好用,那么再往前退一个版本。查看当前版本可使用:

pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

升级 delve

go install github.com/go-delve/delve/cmd/dlv@latest

通常,这会将 dlv 下载到 ~/go/bin 目录下面,vscode 可直接使用,但是 idea 需要自己改下自定义属性,加入下面内容

dlv.path=/Users/我的用户名/go/bin/dlv

经此两步,可解决升级 mac os 后,idea 以及 vscode 无法 debug 的问题,这里说的无法 debug 的表现是,断点每次都进入到 proc.go 里面。github 上也有类似的 issues Breakpoints no longer work after upgrading to macOS Sequoia 15.4

后续补充

后续使用时发现,修改 dlv.path idea 虽然生效,但有提示,每次都有,可以直接复制到 golang 插件下面,举个例子:

1
2
cd ~/Library/Application\ Support/JetBrains
find ./ -name "dlv"

我这边输出如下:

1
2
3
4
5
6
7
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/linuxmusl/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/macarm/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/linuxarm/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/mac/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/linux/dlv
.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/linuxarmmusl/dlv

直接替换:.//IntelliJIdea2024.2/plugins/go-plugin/lib/dlv/mac/dlv 即可;

最后更新于