【问题标题】:XCode 4 Step into doesn't workXCode 4 Step into 不起作用
【发布时间】:2011-04-12 21:40:25
【问题描述】:

我正在使用 XCode 4 并发现 3.x 中不存在的调试问题。

我在调用对象方法的那一行放置了一个断点。

Product *p = [[Product alloc] init]; 
[p  print];  <-- Put a breakpoint here

控制在那条线停止后,我尝试进入方法(F7)。但什么也没有发生。系统只是跳过该行并转到下一行(与 Step Over 的行为相同)。

Step into 适用于纯 C 语言项目。问题在于 Objective-C 方法。我该如何解决这个问题?谢谢。

【问题讨论】:

  • 我也有同样的问题,期待解答
  • 欢迎使用 Xcode 4。我在使用那块垃圾(Xcode 4)两天后切换回来。
  • “xcode 4 中的新功能”的 pdf 文件中也没有写入任何内容,而步入、退出是跟踪错误和程序控制的最佳方式。苹果怎么能在 xcode4 中忽略它,而它在 xcode3.x 中存在:(。希望看到它的解决方案。
  • 我也有这个问题。并非总是如此,但经常不去挖掘修复。
  • 我在使用 Xcode5 时遇到了同样的问题。它适用于其他项目,但是“步入”在我当前的项目中不起作用。我怀疑有一些编译器设置会阻止进入。

标签: xcode


【解决方案1】:

不确定这是否有帮助 - 进入系统偏好设置,并在键盘常规设置下确保选中“使用所有 F1 F2 等作为标准功能键”选项。

在我检查之后,F7 开始为我工作。

希望对您有所帮助...

【讨论】:

  • 这正是我遇到的问题!虽然这不是问题的解决方案。
  • 感谢您的解决方案!
【解决方案2】:

在尝试进入它的实例方法之前检查该实例是否不为零。尽管看起来很尴尬,但我们都偶尔会这样做。

【讨论】:

  • 哈哈。在重新启动后完全这样做了。
  • 确实如此。如果你发现你的 Xcode 直接通过了你打算介入的代码行,请检查该方法的所有者是否为 nil。
【解决方案3】:

单步执行 ObjC 方法调用并不总是可行的。向我解释的方式是,内部运行时数据结构必须处于一致状态才能可靠地进入 ObjC 方法。如果当程序在断点处停止时这些内部结构恰好处于不一致的状态,那么单步调试器将失败,而它将单步执行调用。这在 Xcode 3 中也是如此,并且与 Xcode 几乎没有关系,但这是一个 ObjC 运行时和调试器问题。我估计(在 Xcode 中全职工作 3 年以上)进入 ObjC 方法调用失败的概率约为 5%。我发现它最常发生在对我最不方便的时候。 :)

也就是说,如果您永远无法进入任何 ObjC 方法调用,那么可能还有另一个问题,因为我已经能够使用 Xcode 4 多次进入 ObjC 方法调用,但看不到这个与 Xcode 3 相比,问题的发生频率或多或少。

【讨论】:

  • 我会说,使用 XCode 4 step into 在 95% 的情况下都无法正常工作。
  • 我完全不同意这与 Xcode 无关的说法,因为版本之间的差异如此之大。我从来没有在 Xcode 3 中遇到过这个问题,现在它太糟糕了,我实际上正在搜索 Stackoverflow 以寻找修复它的方法。
  • 如果您看到不同的行为,我鼓励您向 Apple 提交错误。
【解决方案4】:

fn+f7 总是对我有用。尽管有时进入 Obj-C 有点奇怪。如果你知道代码的走向,你最好设置更多的断点。

【讨论】:

    【解决方案5】:

    我对 OSX 的了解不够,无法理解为什么这是 fubar,但我只是尝试将默认键绑定更改为 f13-f17,用于暂停/继续、步入/退出等所有常用绑定。对我有用. XCode4 团队的 QA 可能很糟糕?

    【讨论】:

      【解决方案6】:

      切换到 gdb 调试器对我有用。转到 Edit Schemes,Run 阶段的 Info 选项卡,从 LLDB 更改为 GDB。

      它仍然不完美。特别是,如果什么都没发生,您似乎必须经常使用“进入指令”(使用适当的键,或按住 ctrl,同时按下步进按钮),并且要查看寄存器等,您必须在其中使用 gdb 命令行Xcode 窗口。

      【讨论】:

      【解决方案7】:

      删除特定文件并再次添加该文件。这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2023-01-07
        • 1970-01-01
        • 2019-01-11
        • 1970-01-01
        • 2020-04-20
        • 2015-10-17
        • 2011-07-22
        • 2018-07-12
        • 2012-11-16
        相关资源
        最近更新 更多