1. Failed to launch: could not launch process: EOF
记一次 MacOS 下面的排错。
1.1. 起因
更换了 M1 新的 mac 本本后,在使用 vscode 调试 go 程序 run test
的时候报错: Failed to launch: could not launch process: EOF
。
随后 Google 了一下,发现 github 已经有一样的问题了: https://github.com/go-delve/delve/issues/1165
有很多种解决方法,其它能试的都试了,无果。只有一种方法没试,即下载旧版本的 Command Line Tool Tools。
出于谨慎考虑,我没有删除本地的 Command Line Tool Tools,而是下载了这个版本进行试装,但是其版本实在是太低,安装不上去,所以就放弃了。随后折腾了一天,网上搜集资料,最终还是大胆的删除了本地的 Library:
$ sudo rm -rf /Library/Developer/CommandLineTools
然后安装了在 https://developer.apple.com/download/more/ 下载最新的稳定版: Command_Line_Tools_for_Xcode_13.2.dmg
。这当中的过程是先删除、再重启、再安装。
随后 vscode 下的调试就可以正常运行了。
1.2. 原因思考
最后的解决方法是 “试” 出来的,即采用的是 “重启解决 50% 问题,重装解决 100% 问题” 思路,真正的原因未知。可能是因为我这台 mac 上的数据是用 “迁移助理” 从 mac 旧版本上迁移过来的,有些依赖保留了,所以当我删除掉本地的 Library 的时候,也清理掉了一些旧的会影响 delve 的东西。M1 的 mac 使用的是 arm64 架构,而之前的旧 mac 用的是 amd64 架构。
反思: 这玩意折腾了一天,搜集了一天资料,晚上的时候才解决这个问题,真浪费时间。最大的原因是自己 “没有走出那一步” 大胆的去删除系统文件,出于过度谨慎有的时候会拖慢效率。
1.3. 花絮
当重装 Command Line Tool Tools 后,我跑了遍 vscode 的 run test
发现一闪而过,我以为出现了新的问题,去 Google 了一下: delve exit immediately
。找了一会,突然意识到是不是自己没有打断点程序直接退出了啊,然后去试了下打了个断点,果然!这一天给这问题都整懵了,好好笑。
1.4. 总结
- 谨慎大胆
- 重启解决 50% 问题,重装解决 100% 问题。