Xcode,某些子类没有调试符号

时间:2010-06-20 04:39:35

标签: iphone xcode debugging gdb debug-symbols

我正在使用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 = normal,debug
  • 通过咒骂并打字来威胁Xcode rm -rf /Developer进入root bash提示符

请帮助,我的手指在使用NSLog调试时出血

6 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

因此,从 Debug 更改为 Release 可以解决问题,我拥有所有调试符号。

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

答案 2 :(得分:0)

嗯,试图在3.2.3和SDK4 Final中重复此操作但没有成功 - 能够按预期调试UIView子类。这是使用其中一个测试版发生的吗?

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

在gdb类型 bt

如果您看到 self =&lt;值暂时不可用,由于优化&gt; ,因为xcode已设置为优化。

转到构建设置并输入优化

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

发布应保持最快,以便在构建分发时您的代码运行良好。最好在Scheme中更改Build Configuration。

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