【问题标题】:XCode 4 breakpoints not breaking at correct lineXCode 4断点没有在正确的行中断
【发布时间】:2011-07-25 22:46:11
【问题描述】:

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

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

在另一种情况下,我可以在一个函数的任何位置设置断点,代码将在同一文件中不同函数中间的一行中断!中断后的跟踪表明它确实在错误的位置中断,而不仅仅是文件/调试器同步问题。

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

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

请帮忙,我快疯了!!

对此的更新。它再次开始在全新安装了 Lion 和 xcode 的全新机器上发生。整个编辑器都不正常了。下面是出现在错误行上的错误示例。

【问题讨论】:

  • 更多测试表明并非所有文件都受到影响,只有我最近编辑过的文件受到影响。就好像断点使用的是我正在编辑的旧版本文件中的行号。

标签: xcode4 breakpoints


【解决方案1】:

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

【讨论】:

  • 是的。我已经完成了全面清理,我什至进入并手动删除了构建目录。我什至在一台之前没有用于构建项目的干净机器上尝试从 perforce 获得完整的内容,但它仍然会发生!我现在没主意了。接下来我将尝试创建一个新项目并再次手动添加所有文件。那肯定必须解决它。
  • 您使用的是哪个调试器?您提到了 LLVM 编译器,但您使用的是 LLDB 还是 GDB?您可以在活动方案的运行操作中找到此设置。
  • 我正在使用 GDB(我没有 LLDB 选项)
【解决方案2】:

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

我从项目中删除了不使用断点的文件的引用。然后我进行了全面清理并进入文件夹并删除了所有构建和临时数据。然后我打开项目包并删除了项目文件本身以外的所有数据。然后我进行了编译,因此由于缺少文件而引发了错误。然后我将文件放回项目中。

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

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

【讨论】:

  • 我面临着完全相同的问题。我尝试了您提到的相同步骤,但它对我不起作用。 :( 有什么建议吗?
  • 最简单的修复方法是使用管理器(项目选项卡)删除受影响项目的“派生数据”。 “干净”不会这样做。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

    • 我还是有这个问题。 :( 进一步调查使我发现项目源代码的行尾不正确;我无法解释原因,但有时在输入正常代码时,回车键不像正常回车,更像是' \r' 键和 xcode 的行数混淆了。截图如下:Link to image
    【解决方案5】:

    在项目目标下的“构建设置”中,将“调试”的“优化级别”更改为“无”。

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

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 2012-11-16
        • 2011-10-28
        相关资源
        最近更新 更多