【问题标题】:Xcode, no debug symbols for certain subclassXcode,某些子类没有调试符号
【发布时间】:2011-03-05 22:17:12
【问题描述】:

我正在使用 Xcode 3.2.3 和 iPhone SDK

所以我正在尝试调试 UIView 子类,我在被覆盖的方法中遇到了断点,我在 GUI 或 gdb 中都看不到任何符号,只有全局变量和寄存器。

这是我看到的:

(gdb) po self
No symbol "self" in current context.

然而,当我在 UIViewController 子类中设置断点时,所有符号都在那里:

(gdb) po self
<MyViewController: 0x5c18ae0>
Current language:  auto; currently objective-c

我尝试过的一些事情:

  • 清理所有/重建
  • 重启 Xcode
  • 调试和发布之间的变化
  • 在 Project 中配置这些选项 设置:
    • GCC_DEBUGGING_SYMBOLS = 全部
    • 符号 DEBUG_INFORMATION_FORMAT = DWARF、DWARF w/ dSYM 文件
    • BUILD_VARIANTS = 正常,调试
  • 用咒骂和打字来威胁 Xcode rm -rf /Developer 进入根 bash 提示符

请帮忙,我的手指因使用 NSLog 调试而流血

【问题讨论】:

    标签: iphone xcode debugging gdb debug-symbols


    【解决方案1】:

    我经常遇到这个错误。我的解决方法是在 gdb 控制台上键入 bt 命令,然后它会自动排序并开始识别当前上下文中的符号。

    【讨论】:

    • 这个答案在 XCode 8 中立即为我工作。很棒的答案!
    【解决方案2】:

    所以从 Debug 更改为 Release 就成功了,我拥有了所有的调试符号。

    我认为这只是 4.0 SDK 中的一个错误。

    【讨论】:

    • 这对我也有用。一点都不直观。更改为发布版本,以便您可以获取符号...
    【解决方案3】:

    嗯,尝试在 3.2.3 和 SDK4 Final 中重现这一点,但没有成功——能够按预期调试 UIView 子类。这是使用其中一个 beta 版本发生的吗?

    【讨论】:

      【解决方案4】:

      在非测试版中发生在我身上。我只是注意到它只在调用类定义的方法时发生,即(+)而不是(-)

      我不介意没有“self”指针,但它似乎也消除了调试器中的所有局部变量显示,这是错误的。

      【讨论】:

        【解决方案5】:

        MTS 的方法对我有用。从调试更改为发布可修复此问题。多么奇怪。我可以反驳软件进化的理论,因为我在实例方法中遇到了错误。

        【讨论】:

          【解决方案6】:

          在 gdb 中输入 bt

          如果您在任何地方看到 self=,那是因为 xcode 已设置为优化。

          转到构建设置并输入optimization

          如果调试或发布的优化级别设置为 Fastest,则会导致您的问题。

          应以最快的速度发布版本,以便您的代码在构建分发时运行良好。最好在 Scheme 中更改您的构建配置。

          选择并单击“运行”按钮。在左侧单击 Run YourAppsName.app,然后单击 Info 并选择 debug

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-11-25
            • 2023-03-19
            • 2013-12-06
            • 2016-11-04
            • 1970-01-01
            • 2017-04-15
            • 2017-07-14
            相关资源
            最近更新 更多