如何在macOS Monterey上修复VS Code的bsdthread_register运行时致命错误
修复macOS Monterey下VS Code终端
bsdthread_register报错方案 这个报错的核心原因是macOS Monterey收紧了系统调用权限,绝大多数场景下是你运行的命令对应的二进制是用旧版本Go编译导致的,可按以下优先级尝试修复:
方案1:重新编译目标二进制(最推荐,永久生效)
- 报错90%以上的触发原因是二进制由Go 1.15及更早版本编译,旧版本Go的runtime调用的
bsdthread_register逻辑不兼容Monterey的安全策略,只要升级本地Go到1.16及以上版本,重新编译对应项目即可解决。 - 可先运行
go version确认本地Go版本,版本低于1.16时先升级Go到最新稳定版再执行编译操作。
方案2:用Rosetta运行VS Code(临时兼容,无需改代码)
如果暂时无法重新编译项目,可通过Rosetta转译兼容旧系统调用:
- 完全退出VS Code,在访达的应用程序目录右键点击VS Code图标,选择「显示简介」
- 勾选「使用Rosetta打开」选项
- 重新打开VS Code后再运行对应命令即可。
方案3:调整SIP权限(仅应急使用,不推荐长期开启)
前两种方案都不生效时可临时用该方法,操作完建议改回原有设置:
- 重启Mac,按住Command+R进入恢复模式
- 打开恢复模式下的终端,运行
csrutil enable --without debug - 重启进入正常系统后再运行对应命令即可。
注意:调整SIP配置会降低系统安全等级,非必要不要采用该方案。
内容的提问来源于stack exchange,提问作者Chalana Gamage
相关产品推荐
相关产品推荐

