XCode 4 Step into不起作用

时间:2011-04-12 21:40:25

标签: xcode

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

我在一个我称之为对象方法的行上放置一个断点。

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

控制在该行停止后,我尝试进入方法(F7)。但没有任何反应。系统只是跳过该行并转到下一行(与Step Over相同的行为)。

步入适用于纯C语言项目的工作。问题在于Objective-C方法。我该如何解决这个问题?感谢。

7 个答案:

答案 0 :(得分:7)

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

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

希望有帮助...

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

那就是说,如果你从来没有能够进入任何ObjC方法调用,那么可能还有另一个问题,因为我已经能够使用Xcode 4多次进入ObjC方法调用,并且没有看到这个问题比Xcode 3更多或更少。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我不太了解OSX了解为什么这是fubar但是我只是尝试将默认键绑定更改为f13-f17,用于暂停/继续,进入/退出等所有常用绑定。对我而言。可能在XCode4团队中非常糟糕的质量保证?

答案 5 :(得分:0)

切换到gdb调试器对我有用。转到编辑方案,运行阶段的信息选项卡,从LLDB更改为GDB。

它仍然不完美。特别是你似乎必须使用“Step into instruction”(使用适当的键,或者在按下步骤按钮的同时按住ctrl),如果没有任何反应,并且要查看寄存器等,你必须使用gdb命令行Xcode窗口。

答案 6 :(得分:0)

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