macOS 15.6 ARM golang debug 问题
macOS15.4及以上版本存在CommandLineTools工具链的严重bug,导致Go语言调试功能异常,所有断点都会被重定向到系统底层代码。该问题最早出现在macOS15.4,至今未修复。解决方案是手动下载安装CommandLineTools16.2版本,并禁止自动更新。虽然苹果硬件质量优秀,但软件开发工具链问题频发,如该调试bug和Chrome本地网络问题,给开发者带来诸多困扰。文章提供了
前言
最近使用macmini m4在使用golang debug发现一些奇怪的问题,debug到c代码,莫名其妙,而且不知道什么原因,知道搜索查询,才发现是苹果的Command Line Tools 的锅,macOS 15果然是一堆bug,毕竟笔者前面还写了Chrome本地网络访问的bug,系统真是一言难尽啊。
bug
macOS 15.6
Command Line Tools 不知道什么版本,反正是最新版,是系统自动更新的,问题刚好就出在这
问题:
- go的main 方法执行debug调试,所有断点都到:asm_arn64.s@runtime·systemstack_switch。这都c代码了,但是console打印日志却能正确显示,且不调试却看不出任何问题
- 调试协程代码断点直接: proc.go@gopark() ,其实导致调试功能完全无法使用。
笔者在网上搜索发现goland出现过这种问题,直到jetbrains看到bug,但是因为是苹果开发工具bug,所以只能苹果修复,或者用低版本的开发工具解决。
解决办法
据说macOS15.4开始就。。。
解决办法是手动下载Command Line Tools 16.2版本安装
实际上就是执行
sudo rm -rf /Library/Developer/CommandLineTools
然后去:Command Line Tools for Xcode 16.2
下载xcode工具包,手动安装,然后千万别在系统更新中,自动更新了
验证:安装后不需要重启任何软件即可生效
总结
苹果的硬件其实非常好,做工和质量都不错,但是软件真是一言难尽,尤其是开发工具macOS一言难尽啊,这种致命的bug,从macOS15.4到现在都没修复,还有Chrome那个本地网络,这都是开发者的噩梦。
更多推荐
所有评论(0)