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

Iphone Xcode,某些子类没有调试符号,iphone,xcode,debugging,gdb,debug-symbols,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

我使用的是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
(gdb)采购订单自身
当前语言:自动;当前目标-c
我尝试过的一些事情:

  • 全部清理/重建
  • 重新启动Xcode
  • 调试和发布之间的更改
  • 在Project中配置这些选项 设置:
    • GCC\u调试\u符号=全部
    • 符号调试信息格式=DWARF,DWARF w/dSYM文件
    • 构建变量=正常,调试
  • 通过咒骂和打字威胁Xcode
    rm-rf/Developer
    进入根bash提示符
请帮帮我,我的手指因为用NSLog调试而流血了,所以从调试切换到发布就成功了,我有了所有的调试符号


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

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

Hmmm,尝试在3.2.3和SDK4 Final中重新编程,但没有成功——能够按预期调试UIView子类。这是在使用某个测试版时发生的吗?

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


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

MTS'方法适合我。从调试更改为发布可修复此问题。真奇怪。我可以反驳SoftwareEvolved的理论,因为我在实例方法中遇到了错误。

在gdb typebt

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

转到生成设置并键入优化

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

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


选择+单击运行按钮。在左侧单击runyourappsname.app,然后单击Info并选择调试

,这对我也很有效。一点也不直观。更改为发布版本,以便获得符号…这个答案在XCode 8中立即适用于我。妙极了!