MacBook Pro M1 Pro下Go调试报错:stub exited while waiting for connection求助
在MacBook Pro M1 Pro上Go调试器报错的解决方案
问题说明
调试Go代码时触发错误:
"could not launch process: stub exited while waiting for connection: exit status 0"
VSCode、Goland及直接执行dlv debug命令均会出现该问题。
环境信息
- Go版本:
go version go1.18.5 darwin/arm64 - Delve版本:
Delve Debugger Version: 1.9.0 Build: $Id: 69310c2f438e492f892d6af22e8e62c8ea1e9d8d $
可行修复方案
按优先级尝试以下操作:
1. 更新Delve到最新兼容版本
Delve 1.9.0对M1芯片支持存在已知缺陷,更新至1.10.0及以上版本:
go install github.com/go-delve/delve/cmd/dlv@latest
执行dlv version确认版本更新成功。
2. 临时关闭系统完整性保护(SIP)
M1芯片的SIP会限制Delve调试权限:
- 重启Mac,按住电源键直到出现启动选项
- 进入恢复模式,打开「实用工具」-「终端」
- 执行命令:
csrutil disable - 重启Mac后重试调试
调试完成后可重新启用SIP(执行
csrutil enable)
3. 配置Go环境变量强制使用arm64架构
避免交叉编译导致的调试兼容性问题:
export GOARCH=arm64 export GOOS=darwin
若需永久生效,将上述命令添加到~/.zshrc(zsh)或~/.bash_profile(bash)中。
4. 检查IDE调试配置
- VSCode:打开
.vscode/launch.json,确认go.gopath和go.goroot指向M1原生Go安装路径,且未指定arch为amd64 - Goland:进入「Preferences」-「Go」-「GOROOT」,选择arm64版本Go;调试配置中取消勾选「Use cross-compile」
5. 清除Delve缓存
删除旧缓存文件避免干扰:
rm -rf ~/.cache/delve
内容的提问来源于stack exchange,提问作者patrick lamatiere
相关产品推荐
相关产品推荐

