前言
日常开发中相信都会遇到 Xcode 断点失效的情况,断点变成虚线框,之前开发遇到过几次,记录下解决对应的设置,依次执行大概率能解决
1. 检查代码是否编译
- 确保你的代码已经成功编译,否则 Xcode 可能无法正确加载符号表。
- 清理项目 (
Cmd + Shift + K),然后重新编译 (Cmd + B)。 - 确保代码能执行到断点位置 确保Build Setting -> Preprocessing 中 DEBUG=1
- Xcode 断点开关是 enable 状态
2. 检查优化级别 (Optimization Level)
- 在
Build Settings中搜索Optimization Level(SWIFT_OPTIMIZATION_LEVEL或GCC_OPTIMIZATION_LEVEL)。 - 如果 Debug 目标的优化级别是
-Onone,否则编译器可能会优化掉代码,使断点无效。改成其他选项
3. 检查符号调试信息 (Debug Symbols)
- 在
Build Settings搜索Debug Information Format,确保它设置为DWARF with dSYM File,否则可能无法加载符号。
4. Scheme Build Configuration
Xcode工具栏 -> Product -> Scheme -> Edit Scheme -> Run -> Build Configuration 切换成 Debug
5. 取消Always Show Disassembly的选中状态.
Xcode工具栏 -> Debug -> Debug Workflow -> 取消Always Show Disassembly
总结
如果以上方式仍然不行,只能使用重启大法了,重启 Xcode 重启 Mac,建议工程区分好 debug 和 release 的build setting的选项