Answers:
首先,我100%同意较早前说过OFF的人 Load Symbols Lazily
。
我还有两件事要补充。
(我的第一个建议听起来很明显,但是当有人第一次向我建议时,我的反应是这样的:“来吧,请,您真的以为我不会更好……哦。”)
确保您没有意外地将“ Active Build Configuration”设置为“ Release”。
在项目的图形树显示中的“目标”下,右键单击目标并执行“获取信息”。查找名为“ Generate Debug Symbols”(或类似名称)的属性,并确保已选中该属性(也称为“ ON”)。另外,您可以尝试查找(也在Target >> Get Info中)名为“ Debug Information Format”的属性,并将其设置为“带有dsym文件的小矮人”。
在目标>>获取信息下还有许多其他属性可能会影响您。寻找诸如优化或压缩代码之类的东西,然后将其关闭(我假设您正在调试模式下工作,因此这不是不好的建议)。另外,查找诸如剥离符号之类的内容,并确保其也处于关闭状态。例如,对于调试目标,应将“ Strip Linked Product”设置为“ No”。
我只是再次遇到了同样的问题。在对“懒惰地加载符号”进行三次检查并剥离和调试信息生成标志之后,我执行了以下操作:
您可以通过右键/选项单击.xcodeproj捆绑包并选择“显示包内容”来在finder中完成相同的任务。
当我重新启动Xcode时,我所有的窗口都已重置为默认位置,等等,但是断点起作用了!
另一个原因
DeploymentPostprocessing
在BuildSettings中设置为NO- 此处有详细信息
简而言之 -
激活此设置表示应删除二进制文件,并将文件模式,所有者和组信息设置为标准值。[DEPLOYMENT_POSTPROCESSING]
YES
只在我中subproject
可用,然后断点在中不起作用subprojects
。设置为之后NO
,非常完美!
看到这篇文章:断点不能在Xcode中工作?。在这种情况下,您的程序可能无法在gdb的帮助下运行,因此您可能会推“ Run”而不是“ Debug”,在这种情况下,您不能指望断点起作用!
可能的解决方案之一是....转到“产品”>“方案”>“编辑方案”> ..在“运行”>“信息”>“可执行”中选中“调试可执行文件”。
我的断点无法正常工作,然后完成“构建/清理所有目标”以使其重新工作。
我认为问题可能出在设备版本和Xcode之间不兼容。尝试在运行iOS 5.0.1的iPhone 4S上进行调试时遇到此问题。我仍在使用Xcode 3.2.5。通过在管理器窗口中选择“使用此设备进行开发”,我从听筒中获得了符号。但是此电话拒绝断点。我以前的3GS 将断点,相同的Xcode项目,相同的设置...只是不同的设备,并且它正在运行iOS 4.0。我猜这是3.2.5中的Xcode错误,因为我有符号。到目前为止,已经尝试了这里发布的所有解决方案,我已经决定解决我的问题的方法是继续升级到XCode4。也许您不能有效地调试,除非您的基本SDK至少与要调试的系统一样高。也许很明显-有人可以确认吗?
编辑:当我可以确认这是真的时,我将进行更新。
在Xcode 4中
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
设置断点时,右键单击,您将获得有关断点处理方式的几个选项(记录变量并继续操作,暂停执行等)
另外,请确保未在调试首选项中选择“延迟加载符号”。
(适用于Xcode 3.1,不确定过去/将来的版本)
另外,请确保该应用程序的AppStore分发版本也未安装在设备上。
Xcode中的断点似乎有3种状态。如果单击它们,它们将进行不同的设置。启用了深蓝色,禁用了灰色,有时我会看到浅蓝色,这需要我再次单击断点才能使其变为深蓝色。
除此之外,请确保您使用debug命令而不是run命令启动它。您可以通过点击选项+命令+回车,或者从运行菜单中选择执行(调试)选项来实现。