Xcode4 XCode 4断点未在正确的行中断

Xcode4 XCode 4断点未在正确的行中断,xcode4,breakpoints,Xcode4,Breakpoints,在最新的XCode 4版本中,我的断点已停止正常工作。在不更改项目设置的情况下,断点不再在其设置的行处中断 例如,在一个函数中,我可以在其主体内的任何位置设置断点,但代码总是在函数的最后一行中断 在另一个实例中,我可以在一个函数中任意设置断点,而代码将在同一文件中的不同函数中间的一行中断裂!在中断后跟踪显示它确实在错误的位置中断,这不仅仅是一个文件/调试器同步问题 我不知道为什么会这样。然而,它似乎是在新断点上启动的,而旧断点起作用。我在错误位置添加的任何新断点。最近,一些文件甚至根本就没有损坏

在最新的XCode 4版本中,我的断点已停止正常工作。在不更改项目设置的情况下,断点不再在其设置的行处中断

例如,在一个函数中,我可以在其主体内的任何位置设置断点,但代码总是在函数的最后一行中断

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

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

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

请帮帮我,我快疯了

这方面的更新。在一台全新的机器上,新的Lion和xcode安装又开始出现这种情况。整个编辑都疯了。下面是错误行中出现错误的示例


你清理过你的目标了吗?Shift-Cmd-K.

我已经解决了这个问题,尽管我还没有找到根本原因

我从项目中删除了不使用断点的文件的引用。然后我做了一次彻底的清理,进入文件夹并删除了所有构建和临时数据。然后我打开了项目包,删除了除项目文件本身之外的所有数据。然后我进行编译,这样它就会因为缺少文件而抛出错误。然后我将文件放回项目中

现在,完全相同的文件可以很好地处理断点


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

这是在我升级到XCode 4后开始发生的。我只是删除了所有断点,进行了清理,然后重新添加了断点。现在似乎工作正常。

从我所阅读的内容来看,Xcode容易与断点混淆,解决不同步问题的方法是清除“派生数据”;到目前为止,我发现了两种清洁方法(说明对Xcode 4.x有效):

a) 进入Organizer中的“项目”下,选择您的项目,然后点击导出数据上的删除按钮

b) 进入产品菜单,按住键盘上的ALT按钮,观察菜单是否正在更改。。。因此,在项目目标下的“构建设置”中,将“调试”的“优化级别”更改为“无”,从而将“清理构建文件夹…”的清理转换为“


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

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


我相信只有使用C或C++代码的文件才会出现这种情况。苹果似乎忽略了iOS上的C++开发者。我认识很多专业的游戏开发者,每一个都使用C++编写游戏。苹果缺乏支持令人恼火。

更多的测试表明,并非所有文件都受到影响,只有我最近编辑过的文件受到影响。这几乎就像断点使用的行号来自我正在编辑的文件的旧版本。是的。我已经做了彻底的清理,我甚至已经进入并手动删除了构建目录。我甚至在一台干净的机器上尝试了从perforce获得的完整信息,这台机器以前没有被用于构建项目,现在仍然如此!我现在没有主意了。我将尝试创建一个新项目,然后再次手动添加所有文件。这肯定会解决问题。您使用的是哪种调试器?您提到了LLVM编译器,但您使用的是LLDB还是GDB?您可以在活动方案的运行操作中找到此设置。我正在使用GDB(我没有LLDB选项),我面临完全相同的问题。我尝试了你提到的相同步骤,但对我不起作用(有什么建议吗?最简单的解决方法是使用“组织者”(项目选项卡)删除受影响项目的“派生数据”。“清除”不能做到这一点。我仍然有问题:(进一步调查使我发现项目源代码的行尾不正确;我无法解释原因,但有时在输入正常代码时,enter键不起正常的enter键的作用,而更像“\r”键,xcode的行号会被混淆。下面是一个屏幕截图: