【问题标题】:Xcode breakpoints shifted at runtimeXcode 断点在运行时移动
【发布时间】:2012-02-28 20:15:50
【问题描述】:

我已经在这里和 Google 上搜索了一个小时左右,但无法找到关于在运行期间如何正确移动断点的答案。我已经重新安装了 Xcode(3.2.2),延迟加载已关闭,目标设置没有优化,以及所有其他可能导致问题的目标设置。我还销毁了所有用户项目文件(主 .pro 文件除外),似乎没有任何东西可以纠正这一点。是的,我正在运行断点。是的,我已经完成了干净的构建。

当我设置断点时,在调试器中,中断会在源代码中停止两行或三行(或更多行),单步执行会继续显示错误的行。此外,在调试器窗口中,深蓝色断点符号消失了,它确实出现在编辑器窗口中。

这让我很生气。

【问题讨论】:

    标签: xcode debugging breakpoints xcode3.2


    【解决方案1】:

    我遇到了类似的问题(奇怪的断点移动),但我的问题是我设置了错误的目标,所以我正在修改和设置断点的代码甚至没有被重建!但可执行文件仍会运行,使用旧代码,导致出现奇怪移动的断点。

    【讨论】:

      【解决方案2】:

      当源文件的行尾不一致时,Xcode 有时会对行号感到困惑,例如因为您一直在使用不同的编辑器,并且可能在源文件中混合了不同的行尾。您可以使用 BBEdit 或其免费的兄弟 TextWrangler 之类的工具来解决此问题。

      【讨论】:

      • 不,我通过并验证了行尾,它们都是 Unix,UTF-8 文本文件。问题依然存在。
      • 澄清一下:当我说行尾不一致时,我的意思是您可能会遇到一种情况,即在给定的源文件混合了不同的行尾。我一直都知道,例如同事们一直在使用 Windows 文本编辑器来更改具有 Unix 行结尾的文件。我并不是说这就是你必须拥有的,但我只是想确保我清楚地了解问题的确切性质。
      • 是的,我理解你的意思,并且确实确保了行尾是一致的。我只在我的源代码上使用 Xcode 和 Emacs,没有其他人对代码进行过修改。我还没有追查到这个问题。似乎更高级别的堆栈帧指向了正确的位置,只有直接和前一帧指向错误。
      • OK - 尝试另一件事:从 DWARF 调试信息切换到 Stabs(反之亦然)。
      • 问题是代码正在目标构建设置中进行优化。我在项目级别关闭了优化,但没有注意到目标设置。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-15
        • 2013-07-09
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-06
        • 1970-01-01
        相关资源
        最近更新 更多