XCode 4断点没有在正确的行中断

时间:2011-03-30 09:02:24

标签: xcode4 breakpoints

我的断点在最新的XCode 4版本中已停止正常工作。如果不更改项目设置,断点不会在设置的行中断。

例如,在一个函数中,我可以在它的正文中的任何位置设置断点,但代码将始终在函数的最后一行处断开。

在另一个例子中,我可以在一个函数中的任何位置设置断点,代码将在同一文件中不同函数中间的一行中断!在中断后跟踪显示它确实在错误的地方中断,这不仅仅是文件/调试器同步问题。

我不知道为什么会这样。然而,它似乎从新的断点开始,而旧的断点工作。我添加的任何新断点都在错误的位置。最近,一些文件现在根本没有破坏!我只能假设断点是错误的,它被转移到未被调用的代码中。我已经针对这个问题进行了大量的互联网搜索和论坛搜索,虽然我找到了类似问题的人,但是没有解决方案或列出的解决方案(重启设备,交换调试输出,关闭优化等)都没有工作对我来说。

值得一提的是,我主要使用.mm文件在C ++中编码。在XCode 3的过去一年的开发中,以及在XCode 4中的最后几个月,一切都很好!我正确调试设置。在调试运行时没有优化,没有死代码剥离,我正在使用带有DWARD的LLVM编译器2.0和dSYM调试文件。但是,更改这些值没有任何区别。

请帮助,这让我很生气!!

对此的更新。它又开始在一台全新的Lion和xcode安装的机器上发生。整个编辑都没有成功。以下示例出现在错误的行上的错误。

Errors on the wrong lines!

6 个答案:

答案 0 :(得分:4)

从我所阅读的内容来看,Xcode往往会对断点感到困惑,摆脱不同步问题的方法是清理“派生数据”;到目前为止,我发现了两种清洁方法(说明适用于Xcode 4.x):

a)进入组织者,在项目下,选择您的项目并在派生数据上点击该删除

b)进入产品菜单,按住键盘上的ALT按钮,观察菜单是否正在改变......所以干净转换为“清理构建文件夹...”

答案 1 :(得分:3)

项目目标下的“内置设置”将“调试”的“优化级别”更改为“无”。

我发现这解决了我的问题。

答案 2 :(得分:1)

我已经解决了这个问题,虽然我没有找到根本原因。

我从项目中删除了不使用断点的文件的引用。然后我做了一个完整的清理并进入文件夹并删除任何构建和临时数据。然后我打开了项目包并删除了除项目文件本身之外的所有数据。然后我编译,因为丢失文件引起错误。然后我将文件放回项目中。

现在,完全相同的文件可以正常使用断点!

不知道为什么但很高兴它被修复了。

答案 3 :(得分:0)

你清理了目标吗?移-CMD-K

答案 4 :(得分:0)

在我升级到XCode 4后,这开始发生在我身上。我刚刚删除了所有断点,干净了,然后重新添加了我的断点。好像现在好了。

答案 5 :(得分:0)

我已经弄明白为什么会发生这种情况。如其中一个回复中所述,您可以通过删除派生数据来修复它。这将始终解决问题。编辑器出于某种原因失去了源代码与用于交叉引用断点和错误等的代码标记之间的关系。删除派生数据迫使它重新创建它。

我认为这只发生在使用C或C ++代码的文件中。 Apple似乎忽视了iOS上的C ++开发人员。我认识很多专业游戏开发者,每个人都使用C ++来编写游戏。 Apple缺乏支持令人讨厌。