Xcode调试停在main.m并打印数字的问题排查求助
这种启动调试卡main.m的问题我碰到过好几次,大概率是Xcode的缓存、断点配置或者符号表加载出了问题,给你列几个一步步排查的方案:
1. 先检查断点配置
打开Xcode的Breakpoint Navigator(快捷键⌘ + 8),仔细看有没有这两类断点:
- 误加在
main.m里的普通断点 - 全局的Exception Breakpoint(有时候会在APP启动初期就触发,导致停在main函数)
如果看到可疑断点,右键选择Delete或者Disable,然后重启调试试试。
2. 彻底清理项目缓存和构建文件
Xcode的缓存经常会搞出各种玄学问题,按这个流程来:
- 先完全关闭Xcode
- 打开终端,执行命令清理DerivedData目录:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重新打开Xcode,按
⌘ + Shift + K清理当前项目的构建产物,再按⌘ + Option + Shift + K清理全局构建缓存 - 重新构建项目(
⌘ + B)后启动调试
3. 检查Scheme的调试配置
点击Xcode顶部的Scheme下拉菜单,选择Edit Scheme...:
- 左侧选
Run,切换到Info标签页,确认Build Configuration是Debug(别不小心选成Release了) - 切换到
Arguments标签页,检查Environment Variables里有没有奇怪的变量(比如DYLD_PRINT_STATISTICS这类会打印启动日志的变量),有的话暂时删掉再试
4. 验证符号表加载状态
调试停在main.m时,在调试控制台输入:
image list
看看输出里有没有你的APP二进制文件,注意看后面的标注,如果显示(no symbols)说明符号表没加载成功。这种情况下可以:
- 去
Edit Scheme...的Run->Options里,先关掉Debug executable再重新打开 - 或者重启Xcode和你的iOS设备
5. 重置设备的调试连接
有时候设备的调试服务会异常,试试:
- 断开设备和电脑的连接,重启iOS设备
- 设备重启后重新连接USB,等Xcode完全识别设备后再启动调试
- 另外检查设备的
设置->通用->设备管理,确保你的开发者账号是信任状态
6. 排除项目配置损坏的可能
如果上面的方法都没用,新建一个简单的ObjC+Swift混合项目,用同样的调试方式连接设备。如果新项目能正常调试,那大概率是当前项目的配置文件(比如project.pbxproj)损坏了,可以尝试从备份恢复项目文件,或者重新生成项目配置。
内容的提问来源于stack exchange,提问作者zorro2b
相关产品推荐
相关产品推荐

