前言

最近使用macmini m4在使用golang debug发现一些奇怪的问题,debug到c代码,莫名其妙,而且不知道什么原因,知道搜索查询,才发现是苹果的Command Line Tools 的锅,macOS 15果然是一堆bug,毕竟笔者前面还写了Chrome本地网络访问的bug,系统真是一言难尽啊。

bug

macOS 15.6

Command Line Tools 不知道什么版本,反正是最新版,是系统自动更新的,问题刚好就出在这

问题:

  1. go的main 方法执行debug调试,所有断点都到:asm_arn64.s@runtime·systemstack_switch。这都c代码了,但是console打印日志却能正确显示,且不调试却看不出任何问题
  2. 调试协程代码断点直接: proc.go@gopark() ,其实导致调试功能完全无法使用。

笔者在网上搜索发现goland出现过这种问题,直到jetbrains看到bug,但是因为是苹果开发工具bug,所以只能苹果修复,或者用低版本的开发工具解决。

解决办法

参考:https://youtrack.jetbrains.com/issue/GO-18407/After-upgrading-my-Mac-to-macOS-15.4-the-debugging-feature-in-GoLand-2024.3.5-no-longer-works-as-expected.-The-debugger-always

据说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那个本地网络,这都是开发者的噩梦。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐