为什么我的断点不起作用?

Ala*_*ley 98 xcode breakpoints

我设置了断点,但Xcode似乎忽略了它们.

pes*_*ous 139

首先,我同意100%与之前说过关闭的人 Load Symbols Lazily.

我还有两件事要补充.

(我的第一个建议听起来很明显,但有人第一次向我提出建议时,我的反应就是这样:"来吧,拜托,你真的觉得我不会更清楚......哦.")

  1. 确保您没有意外将"Active Build Configuration"设置为"Release".

  2. 在项目的图形树显示中的"目标"下,右键单击目标并执行"获取信息".查找名为"Generate Debug Symbols"(或类似)的属性,并确保这是CHECKED(也称为ON).此外,您可以尝试查找(也在Target >> Get Info中)一个名为"Debug Information Format"的属性,并将其设置为"Dwarf with dsym file".

Target >>获取信息下的许多其他属性可能会对您产生影响.寻找诸如优化或压缩代码之类的东西并将其关闭(我假设您正在调试模式,因此这不是坏建议).此外,寻找剥离符号之类的东西,并确保它也是OFF.例如,对于Debug目标,"Strip Linked Product"应设置为"No".

  • 在XCode 4.5.2上我遇到了这个问题,结果是因为我启用了"链接时优化",所以这是另一回事 (8认同)
  • 要更改构建配置,请转到运行 - 信息下的产品 - >方案 - >编辑方案.对我来说,检查该菜单中的"Debug Executable"是有效的. (5认同)
  • 劫持最佳答案添加Bison语法似乎是断点不起作用的另一个(异国情调)原因(请参阅下面的答案).希望能为这个问题的下一个人节省一些时间. (2认同)
  • 使用⌘Y无意中切换断点激活也非常容易.孩子们,请注意这一点. (2认同)

Ode*_*gev 36

在Xcode 7中,对我有用的是:

1)确保目标 - >方案 - >运行 - 处于调试模式(已发布)

2)确保选中"Debug executable"选项,见下图:

在此输入图像描述

  • 这正是发生在我身上的事情,复选框未经检查 (3认同)
  • 因此损失了几个小时,我讨厌我的生活=) (2认同)

Ala*_*ley 25

转到Xcode调试首选项.确保未选中"懒惰加载符号".

  • 此设置不再是Xcode 6中的选项 (17认同)
  • 不幸的是,Xcode 6中没有"调试"首选项,文档中没有出现"懒惰".叹. (7认同)
  • 这适合我!那是什么选择?有人可以解释一下吗? (2认同)

cri*_*fan 17

问题

  • 背景
    • Xcode13.0
      • 代码:Objective-C
  • 问题:添加了断点,但不起作用
    • 在此输入图像描述

(可能)原因及解决办法

  • 原因:Xcode 错误
    • 解决方案Product-> Clean Build Folder,然后重试调试(多次)
      • 在此输入图像描述
  • 原因:禁用调试
    • 解决方案:启用它:Product-> Scheme-> Edit Scheme-> Run->Info
      • Build Configuration设置Debug
      • 选择/选择/启用:Debug executable
      • 在此输入图像描述
  • 原因:禁用所有断点
    • 解决方案:启用它:调试面板 -> 单击断点图标
      • 在此输入图像描述
  • 原因:调试信息有待优化
    • 解决方案:不优化
    • 单击项目 -> Build Settings-> Apple Clang - Code Generation-> Optimization Level->Debug确保是None[-O0]
      • 在此输入图像描述

有关的

XCode 的符号断点不起作用

  • 背景

XCode 崩溃日志

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument'
Run Code Online (Sandbox Code Playgroud)

添加XCode符号断点

-[__NSCFConstantString stringByAppendingString:]:

但断点不起作用

  • 解决方案

改成:

-[NSString stringByAppendingString:]

相关文档:stringByAppendingString:


Fra*_*rba 15

我刚刚遇到同样的问题(再次).在三重检查"懒惰加载符号"并剥离和调试信息生成标志后,我执行了以下操作:

  1. 退出Xcode
  2. 打开终端窗口并cd到项目目录
  3. 进入.xcodeproj目录
  4. 删除.pbxproj文件以外的所有内容(我有frank.mode1v3和frank.pbxuser)

您可以通过右键/选项单击.xcodeproj包并选择"显示包内容"来在finder中完成相同的任务.

当我重新启动Xcode时,我的所有窗口都重置为默认位置等,但断点有效!

  • 这有效,但它删除了所有的偏好...这应该在没有其他工作时完成. (2认同)

bne*_*ane 12

对于Xcode 4.x:转到产品>调试工作流程并取消选中"在调试时显示反汇编".

对于Xcode 5.x转到Debug> Debug Workflow并取消选中"Show Debuging时显示反汇编".


Sor*_*omo 10

可能的解决方案之一可能是....转到产品>方案>编辑方案>..在运行>信息>可执行文件中检查“调试可执行文件”。


小智 8

看到这篇文章:断点不在Xcode中工作?.您可能正在推"运行"而不是"调试",在这种情况下,您的程序没有在gdb的帮助下运行,在这种情况下,您不能指望断点工作!


gbk*_*gbk 7

另一个原因

DeploymentPostprocessing在BuildSettings中设置为NO - 详细信息请参见此处

简而言之 -

激活此设置表示应删除二进制文件,并且应将文件模式,所有者和组信息设置为标准值.[DEPLOYMENT_POSTPROCESSING]

在此输入图像描述


Gaz*_*ong 5

这让我在 Xcode 9 中度过了令人沮丧的半天。它最终是一个简单的调试设置。

转到调试 > 调试工作流并确保关闭“始终显示反汇编”。就那么简单。:(


Str*_*der 5

XCode 9.4.1为我提供的解决方案(没有在任何断点处停止):

在构建目标下->构建设置->优化级别:从“优化速度”->“无优化”(现在变慢了,但是可以使用)


Luk*_*kas 5

在我的情况下解决它的方法非常简单,在 Xcode - Product - Clean Build Folder 中,然后是 Product - Run(不是 Play Xcode 按钮)。

(在使用 Xcode 播放按钮长按切换到单元测试后,Xcode 11 -beta 4 出现问题)