【问题标题】:Xcode build & debug strange behaviour?Xcode 构建和调试奇怪的行为?
【发布时间】:2009-12-11 20:09:20
【问题描述】:

这可能有一个非常简单的答案......我有一个项目,我在 program.m 中设置了一个活动断点。我的问题是,当我点击“构建和调试”时,主视图中的编辑器和调试器中的编辑器都会立即放入其中一个 apples .h 文件的代码中。

我将代码复制到一个新项目中,它工作正常,我只是好奇我对这个项目做了什么来让这开始发生?

EDIT_001

我将范围缩小到代码顶部的这些行。我的断点进一步向下,但是在点击“构建和调试”时,两个编辑器都会跳到“CFByteOrder.h”,尽管执行确实会正常继续,但很难看到你在代码中的位置。

我正在使用 10.6 |调试 | x86_64,断点可以在这些行下方的任何位置,它总是跳转到 CFByteOrder.h,注释掉这 3 行,一切正常。如果您将代码复制并粘贴到新项目中,也一切正常,很奇怪,也许我不小心在项目上设置了一些选项。

NSLog(@"MDDStructure V002 ... ");
if(CFByteOrderGetCurrent() == CFByteOrderLittleEndian) {
    NSLog(@"BYTEORDER: Little Endian");
}

EDIT_002

我将把它标记为已接受,因为我无法在新场景中重现该行为,所以我只能得出结论,我的原始项目以某种方式/某处损坏了。

加里

【问题讨论】:

  • 您必须具体告诉我们您的断点在哪里以及它在 Apple 标头中的停止位置。如果您的项目是在发布配置中构建的,那么您正在构建优化的代码,并且调试可能很奇怪。

标签: xcode


【解决方案1】:

CFByteOrderGetCurrent() 是内联代码,因此您在标题中看到的实际上是编译到源文件中的代码。至于为什么你的断点过早停止,可能是很多事情,但首先我要确保 a) 调试符号类型设置为 DWARF 或 DWARF 使用 dSYM,以及 b) 你清理所有并重建,确保您的调试符号与您的可执行文件匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    相关资源
    最近更新 更多