使用LLDB for IOS调试类成员变量NSArray

时间:2012-04-24 00:13:50

标签: objective-c ios xcode lldb

有谁知道如何在IOS中获取类成员变量的值?

我尝试使用LLDB在类成员变量中调试NSArray。

我跑完后

__cellDataShadowArray2D = [[NSArray alloc] initWithObjects:[NSArray arrayWithObjects:obj1, obj2, nil], nil];

当我使用LLDB(打印对象)检查值时,我总是得到它。

(lldb) po __cellDataShadowArray2D
(NSArray *) $66 = 0x001e8894 <object returned empty description>

(lldb) p __cellDataShadowArray2D
(NSArray *) $67 = 0x001e8894

(lldb) po [__cellDataShadowArray2D count]
2012-04-24 10:10:38.535 SOME [61985:15803] -[__NSCFConstantString count]: unrecognized selector sent to instance 0x1e8894
(id) $68 = 0x00000000 <nil>

(lldb) po [__cellDataShadowArray2D retainCount]
(id) $69 = 0xffffffff [no Objective-C description available]

(lldb) p (int) [__cellDataShadowArray2D retainCount]
(int) $70 = -1

(lldb) p (int) [__cellDataShadowArray2D count]
2012-04-24 10:11:31.333 SOME [61985:15803] -[__NSCFConstantString count]: unrecognized selector sent to instance 0x1e8894
(int) $71 = 0

3 个答案:

答案 0 :(得分:1)

  • 确保在进行测试之前实际评估了代码行。

很明显__cellDataShadowArray2D指向编译常量字符串的空实例; @ “”。这意味着它不能过度释放或类似的东西;这意味着尚未发生分配(或者您正在尝试调试优化代码,并且调试器因优化而混淆)。

  • po非对象类型没有意义

  • retainCount没用。不要打电话。

答案 1 :(得分:0)

答案 2 :(得分:0)

这绝对是一个LLDB问题。我有同样的,根本无法调试。我切换回GDB,没关系