为什么GDB将ObjC超类实例变量显示为NULL?

时间:2011-12-13 17:58:34

标签: objective-c xcode xcode4 gdb

我在XCode 4中有一个带有ARC项目的Objective-C。我有一个自定义基类MyBaseClass,它有几个__strong NSString *属性(例如superClassString),它们由几个子类(即MySubClass)继承。即使在立即为其中一个属性提供对象之后:

instance = [[MySubClass alloc] init];
instance.superClassString = [NSString stringWithFormat:@"gdb victim"];

GDB仍然将指针值(instance.superClassString)报告为NULL。即使我在显式使用指针的函数之前中断,它甚至会将指针值报告为NULL:

NSLog(@"It really is there: %@", instance.superClassString);

系统正确显示文字:

  gdb victim

并表现得好像没有错。

1 个答案:

答案 0 :(得分:1)

我认为这是XCode / gdb本身的一个错误。发生在我身上好几次了。只需验证您是在Debug中进行编译而不是在发布模式下进行编译。

这可能会有所帮助:Bug in XCode debugger?