我设置了断点,但Xcode似乎忽略了它们。
答案 0 :(得分:135)
首先,我同意100%与之前说过 OFF Load Symbols Lazily
的人。
我还有两件事需要补充。
(我的第一个建议听起来很明显,但有人第一次向我提出建议时,我的反应就是这样:“来吧,拜托,你真的觉得我不会更清楚......哦。 “)
确保您没有意外将“Active Build Configuration”设置为“Release”。
在项目的图形树显示中的“目标”下,右键单击目标并执行“获取信息”。查找名为“Generate Debug Symbols”(或类似)的属性,并确保这是CHECKED(也称为ON)。此外,您可以尝试查找(也在Target>>获取信息中)一个名为“调试信息格式”的属性,并将其设置为“使用dsym文件的Dwarf”。
目标>>下有许多其他属性获取可能会影响您的信息。寻找诸如优化或压缩代码之类的东西并将其关闭(我假设您正在调试模式,因此这不是坏建议)。此外,寻找剥离符号之类的东西,并确保它也是OFF。例如,对于Debug目标,“Strip Linked Product”应设置为“No”。
答案 1 :(得分:29)
答案 2 :(得分:25)
转到Xcode调试首选项。 确保未选中“懒惰加载符号”。
答案 3 :(得分:14)
我刚刚遇到同样的问题(再次)。在三重检查“懒惰加载符号”并剥离和调试信息生成标志后,我做了以下操作:
您可以通过右键/选项单击.xcodeproj包并选择“显示包内容”,在Finder中完成相同的任务。
当我重新启动Xcode时,我的所有窗口都重置为默认位置等,但断点有效!
答案 4 :(得分:12)
对于Xcode 4.x: 转到产品>调试工作流程并取消选中“调试时显示反汇编”。
对于Xcode 5.x 转到调试>调试工作流并取消选中“调试时显示反汇编”。
答案 5 :(得分:8)
请参阅此帖:Breakpoints not working in Xcode?。您可能正在推“运行”而不是“调试”,在这种情况下,您的程序没有在gdb的帮助下运行,在这种情况下,您不能指望断点工作!
答案 6 :(得分:7)
另一个原因
在BuildSettings中将DeploymentPostprocessing
设置为NO - details here
简而言之 -
激活此设置表示应删除二进制文件 文件模式,所有者和组信息应设置为标准 值。 [DEPLOYMENT_POSTPROCESSING]
答案 7 :(得分:4)
来到这个页面遇到同样的问题(Xcode 6中的C代码没有在断点处停止)并且上述解决方案都没有工作(该项目实际上是开箱即用的,设置方面,所以几乎没有任何机会调试器设置被设置为错误的值)...
在浪费了相当一段时间来减少问题之后,我终于找到了罪魁祸首(对于我的代码):
Xcode(/ LLVM)不喜欢Bison风格的#line
预处理器命令。
删除它们解决了问题(调试器在断点处停止)。
答案 8 :(得分:4)
对于Xcode 4:
go Product -> Debug -> Activate Breakpoints
答案 9 :(得分:3)
在我的情况下,解决该问题的方法非常简单,在Xcode-产品-清洁生成文件夹中,然后在Product-Run中(不是“播放Xcode”按钮)。
(长按Xcode播放按钮切换到单元测试后,在Xcode 11 -beta 4上出现了问题)
答案 10 :(得分:3)
使用XCode 9.4.1为我解决的方法(没有在任何断点处停止):
在构建目标下->构建设置->优化级别: 从“优化速度”->“无优化”(现在变慢了,但可以运行)
答案 11 :(得分:3)
这让我在Xcode 9中度过了令人沮丧的一天。它最终是一个简单的调试设置。
Go Debug>调试工作流程并确保“始终显示反汇编”已关闭。就那么简单。 :(
答案 12 :(得分:2)
为此,以及Xcode 6及更高版本,确保断点状态按钮被激活(蓝色箭头状按钮):
答案 13 :(得分:2)
删除我的Build文件夹解决了我的问题。
答案 14 :(得分:2)
我认为问题可能是设备版本和Xcode之间不兼容。尝试在运行iOS 5.0.1的iPhone 4S上进行调试时遇到此问题。我还在使用Xcode 3.2.5。我在“管理器”窗口中选择“使用此设备进行开发”,从手机中获取符号。然而,这款手机拒绝断点。我的旧3GS 将断点,相同的Xcode项目,相同的设置......只是不同的设备,它正在运行iOS 4.0。我想这是3.2.5中的Xcode错误,因为我有符号。尝试了到目前为止发布的所有解决方案,我已经确定我的问题的解决方案是继续升级到XCode 4.除非您的基本SDK至少与要调试的系统一样高,否则您无法进行有效调试。也许这很明显 - 任何人都可以确认吗?
编辑:当我确认这是真的时,我会更新。
答案 15 :(得分:2)
我的断点不起作用,然后完成Build / Clean All Targets让它们重新工作。
答案 16 :(得分:2)
我在Xcode(2.4.1)中遇到了很多断点问题。我使用的项目只包含其他项目(如Visual Studio中的解决方案)。我发现有时断点根本不起作用,除非在起始项目中设置了至少一个断点(即包含我的代码入口点的断点)。如果唯一的断点位于“低级别”项目中,则会被忽略。
如果你在包含断点所在的源代码行的项目中对断点起作用,那么Xcode似乎只能正确处理断点操作。
如果我尝试通过另一个项目删除或禁用断点,则该操作有时不会生效,即使调试器指示它有。所以我会发现自己打破了禁用的断点,或者我之前删除的(现在看不见的)断点。
答案 17 :(得分:1)
这可能是发生这种情况的可能原因之一。...转到“产品”>“方案”>“编辑方案”> ..“正在运行”>“信息”>“可执行文件” 检查“调试可执行文件”。
答案 18 :(得分:1)
在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
答案 19 :(得分:1)
我尝试了以上所有方法,但对我来说,只调试一次调试断点,然后激活它们。
答案 20 :(得分:1)
如果所有其他方法都失败了,您可以调用以下函数代替断点:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
要恢复,请手动将i设置为零,然后点击“恢复”按钮。
答案 21 :(得分:1)
在XCode 6.3.1中,我发生了同样的事情。 我设法修复它:
完成更改后,我将移动断点选项设置回项目,并取消选择共享断点选项,仍然有效。
我不知道为什么会这样,但这会让我的断点回来。
答案 22 :(得分:1)
您可以在下拉菜单中激活/停用断点
答案 23 :(得分:1)
我发现了问题。不知何故,在我的XCode中启用了“在调试时显示反汇编”,这会产生该问题。当我禁用它时,我的所有调试器都停在我的源代码中。
调试时可以在Product->Debug Workflow->Show Disassembly
下找到它。
答案 24 :(得分:0)
至少在iOS项目中不时会发生这种情况。为了解决这个问题,我不得不重新启动iOS设备,退出Xcode,然后重建项目。
答案 25 :(得分:0)
如果您使用的是Xcode版本11.1(11A1027),请确保您未使用应用商店凭据(供应配置文件),因为在这种情况下,将安装build,并且没有日志或调试器将起作用,这使我花了很多时间为了弄清楚,更新的Xcode已被淘汰。现在可以在没有任何警告的情况下将其安装到设备上。
答案 26 :(得分:0)
就我而言,我是用我的构建覆盖现有的应用商店构建。我删除了它,并且现在可以正常工作。
答案 27 :(得分:0)
将我的xCode更新为版本11.0(11A420a)后,我已经开始遇到此问题。 为了解决这个问题,我安装了附加的模拟器版本12.2,并将我的iPhone版本更新为13.1。 现在,无论是在iOs模拟器上还是在我的设备断点上,都受到打击。
答案 28 :(得分:0)
在Xcode 6.4上,我需要重启我的Mac。
(尝试启用/禁用断点,重启iOS设备,重启Xcode,从工作区包中删除断点文件......)
答案 29 :(得分:0)
在使用模拟器并将方案启动设置为"等待可执行文件时,我遇到了Xcode丢失断点的问题。将其更改为"自动启动"和断点恢复了生机。
答案 30 :(得分:0)
答案 31 :(得分:0)
就我而言,我发现断点已被意外停用。您可以通过调试 - >激活断点[Cmd + Y]重新激活它。如果您注意到灰色的断点标记而不是通常的蓝色标记,则可能就是这种情况。
事实证明,您始终可以使用Cmd + Y键激活断点激活,您可能会点击此组合键而不会注意到它。该报告基于Xcode 7.2。
答案 32 :(得分:0)
当我想调试自定义可执行文件是Safari 5.1的Web插件时,我遇到了同样的问题。 它工作正常,直到我的Safari从4.0.5升级到5.1。 一旦我再次安装了Safari 4.0.5,所有断点都开始工作而不修改任何Xcode设置。
答案 33 :(得分:0)
设置断点时,右键单击,您应该获得有关如何处理断点的几个选项(记录变量并继续,暂停执行等)
还要确保未在调试首选项中选择“懒惰加载符号”。
(适用于Xcode 3.1,不确定过去/未来版本)
答案 34 :(得分:0)
我还没有完成Xcode,但我建议您禁用“Zerolink”和“Lazily加载符号”;这将解决大多数问题。无论如何,Zerolink是一个可憎的人。
答案 35 :(得分:0)
Xcode中的断点似乎有3种状态。如果您点击它们,它们将经历不同的设置。暗蓝色已启用,灰色显示已禁用,我看到有时会出现淡蓝色,需要我再次点击断点才能使其变为深蓝色。
除此之外,请确保使用debug命令而不是run命令启动它。您可以通过选择+ command + return或运行菜单中的Go(调试)选项来实现。
答案 36 :(得分:0)
我认为项目在断点方面也可能会被破坏。例如,我有一个项目,它不会在上次会话中记得的任何断点上中断。我首先写了关于这个here
的文章答案 37 :(得分:0)
还要确保该应用的AppStore发行版未安装在设备上。
答案 38 :(得分:0)
要检查的另一件事是,如果您的调试模式有一个“Entitlements”plist文件(可能是因为您正在使用Keychain进行操作),请确保plist文件具有“get-task-allow”=是行。没有它,调试和日志记录将被破坏。
答案 39 :(得分:0)
我有Xcode 3.2.3 SDK 4.1断点会随机失败。我发现如果你清理构建并在构建下使用touch命令它们再次工作。
答案 40 :(得分:0)
这是我遇到的一个模糊不清的问题:如果您正在使用共享库(或插件),您的断点将在启动时变黄,这可能会导致您挫败键盘并终止调试处理。好吧,不要那样做!在应用程序加载库之前,符号不会加载,此时断点将变为有效。我用浏览器插件遇到了这个问题...... BP被禁用,直到我浏览了一个实例化我的插件的页面。
答案 41 :(得分:0)
同时拥有Xcode 5和6 GM会导致前者丢失断点功能(Xcode 6测试版没问题)。
我尝试了许多建议的方法,但最终放弃了,我现在只使用Xcode 6.
答案 42 :(得分:0)
如果您使用的是subversion,只需将项目文件(仅)还原到您上次知道调试器工作的时间。
答案 43 :(得分:0)
刚刚在XCode 4.2
中解决了这个问题,以上都没有帮助。问题是(我不确定实际发生了什么,但是,这可能对某人有帮助):我的队友在SVN中创建了新的构建配置和更新的项目。我在运行方案设置中设置了旧的构建配置,因此我的步骤是:
就是这样,断点又回来了。希望这会有所帮助。
答案 44 :(得分:0)
断点可以变为黄色的另一个原因是,自首次运行以来,您正在调试的应用程序二进制文件是否已被修改。就我而言,在调试程序一次后,我在应用程序的Contents / Resources文件夹中添加了一个文件夹。在添加文件夹后的调试运行中,断点变为黄色并被忽略。我修改了我的程序:我做了一个干净的,一个构建,添加了文件夹,然后运行,一切都很好。
也许Xcode(或OS X)创建并记住它自己的应用程序的数字签名(不数字签名)然后,感知应用程序被修改,拒绝尝试设置断点。通过在应用程序的第一次(调试)运行之前制作我的mod,数字签名是使用我的mod。
所有这些都在OS X 10.6.8上使用Xcode 3.2.2。
答案 45 :(得分:0)
如果 Xcode 4及更高版本 * 懒洋洋地加载符号 *似乎已弃用。请参阅此帖click here
简单而详细的解释对我有用。
答案 46 :(得分:0)
您可以在目标设置Apple LLVM编译器4.1代码生成部分中检查一个设置 生成调试符号= YES
答案 47 :(得分:-1)
我有Xcode版本4.6.3,断点从未在包含项目的子组中工作。该项目将编译并运行良好;它甚至会附加到调试器并适当地吐出NSLog输出。
该问题与我的标头搜索路径有关。我有一些设置'递归'而不是默认的'非递归'。将它们全部更改为“非递归”并更新所有相关导入,可以正确解决问题。
答案 48 :(得分:-3)
我有类似的问题。我重新安装了xcode。这解决了我的问题
答案 49 :(得分:-3)
要尝试:
1)重启xcode 2)选择另一个模拟器 - 这是我的情况 3)重启mac。
如果这些都不起作用。然后看项目设置。 (这是可能的东西。)