我设置了断点,但Xcode似乎忽略了它们.
首先,我同意100%与之前说过关闭的人 Load Symbols Lazily
.
我还有两件事要补充.
(我的第一个建议听起来很明显,但有人第一次向我提出建议时,我的反应就是这样:"来吧,拜托,你真的觉得我不会更清楚......哦.")
确保您没有意外将"Active Build Configuration"设置为"Release".
在项目的图形树显示中的"目标"下,右键单击目标并执行"获取信息".查找名为"Generate Debug Symbols"(或类似)的属性,并确保这是CHECKED(也称为ON).此外,您可以尝试查找(也在Target >> Get Info中)一个名为"Debug Information Format"的属性,并将其设置为"Dwarf with dsym file".
Target >>获取信息下的许多其他属性可能会对您产生影响.寻找诸如优化或压缩代码之类的东西并将其关闭(我假设您正在调试模式,因此这不是坏建议).此外,寻找剥离符号之类的东西,并确保它也是OFF.例如,对于Debug目标,"Strip Linked Product"应设置为"No".
在Xcode 7中,对我有用的是:
1)确保目标 - >方案 - >运行 - 处于调试模式(已发布)
2)确保选中"Debug executable"选项,见下图:
转到Xcode调试首选项.确保未选中"懒惰加载符号".
我刚刚遇到同样的问题(再次).在三重检查"懒惰加载符号"并剥离和调试信息生成标志后,我执行了以下操作:
退出Xcode
打开终端窗口并cd到项目目录
进入.xcodeproj目录
删除.pbxproj文件以外的所有内容(我有frank.mode1v3和frank.pbxuser)
您可以通过右键/选项单击.xcodeproj包并选择"显示包内容"来在finder中完成相同的任务.
当我重新启动Xcode时,我的所有窗口都重置为默认位置等,但断点有效!
对于Xcode 4.x:转到产品>调试工作流程并取消选中"在调试时显示反汇编".
对于Xcode 5.x转到Debug> Debug Workflow并取消选中"Show Debuging时显示反汇编".
看到这篇文章:断点不在Xcode中工作?.您可能正在推"运行"而不是"调试",在这种情况下,您的程序没有在gdb的帮助下运行,在这种情况下,您不能指望断点工作!
另一个原因
DeploymentPostprocessing
在BuildSettings中设置为NO - 详细信息请参见此处
简而言之 -
激活此设置表示应删除二进制文件,并且应将文件模式,所有者和组信息设置为标准值.[DEPLOYMENT_POSTPROCESSING]
XCode 9.4.1为我提供的解决方案(没有在任何断点处停止):
在构建目标下->构建设置->优化级别:从“优化速度”->“无优化”(现在变慢了,但是可以使用)