LLDB RPC server导致Xcode调试macOS/iOS应用冻结,寻求解决办法
解决Xcode调试macOS/iOS应用时lldb-rpc-server导致的卡死问题
我之前在Xcode 9.x版本搭配macOS High Sierra时也踩过几乎一模一样的调试坑,折腾了好几天总结出几个有效的排查方向,你可以挨个试试:
重置LLDB配置文件
有时候LLDB的本地配置会出现异常,直接导致lldb-rpc-server进程卡死。你可以先备份现有配置,再删除相关文件:# 备份LLDB初始化文件 mv ~/.lldbinit ~/.lldbinit.bak # 备份LLDB偏好设置 mv ~/Library/Preferences/com.apple.lldb.plist ~/Library/Preferences/com.apple.lldb.plist.bak操作完成后重启Xcode,重新构建并调试项目,看是否能恢复正常。
检查并重置系统调试权限
系统的开发者调试权限配置异常,也会导致LLDB无法正常附着应用进程。可以按以下步骤操作:- 打开「系统偏好设置」→「安全性与隐私」→「隐私」标签页
- 找到「开发者工具」选项,确认Xcode已被勾选
- 如果已经勾选,先取消勾选,重启Mac后再重新勾选Xcode
彻底清理Xcode缓存与衍生数据
旧的构建缓存、衍生数据可能干扰调试流程,导致lldb-rpc-server异常。用以下命令清理:# 清理Xcode全局缓存 rm -rf ~/Library/Caches/com.apple.dt.Xcode # 清理项目衍生数据 rm -rf ~/Library/Developer/Xcode/DerivedData清理完成后重启Xcode,重新构建项目尝试调试。
排查第三方Xcode插件冲突
如果你安装了Alcatraz或其他第三方Xcode插件,这些插件很可能和LLDB的调试流程冲突。可以先临时禁用所有插件:defaults write com.apple.dt.Xcode IDEDisablePlugIns -bool YES重启Xcode后测试调试功能,如果恢复正常,再逐一启用插件,找出导致冲突的那一个。
调整Xcode调试设置
部分调试增强选项可能触发这个已知bug,你可以尝试关闭它们:- 打开Xcode的「Preferences」→「Debugging」标签页
- 暂时取消勾选「Enable Address Sanitizer」「Enable Thread Sanitizer」(如果开启的话)
- 关闭「Automatically show variables view when debugging starts」选项
另外,你提到的这个问题是Xcode 9.x版本的已知兼容性bug,重新安装Xcode没用的话,可以试试下载Xcode 9.4版本(和macOS 10.13.4兼容),或者降级到Xcode 9.2,版本适配可能会解决这个问题。
内容的提问来源于stack exchange,提问作者T'n'E




