2014-01-23 36 views
2

通常在lldb调试器中,如果您在对象上执行一个po,它的地址也会与描述一起显示。但是,如果是NSString,地址不会显示。所以问题是有没有办法看到它。如何在Xcode调试器中打印NSString的地址

源代码中的PS - NSLog%p不是我正在寻找的答案。

+1

还有:'po NSLog(@“%p”,object);' – zaph

回答

8

简单使用“p”代替“po”。

实施例:

NSString *string1 = @"test 1"; 
NSString *string2 = @"test 2"; 

(LLDB)PO字符串1
试验1
(LLDB)p字符串1
(的NSString *)$ 2 = 0x0000000100003af0 @ “试验1”
(LLDB)p字符串2
(NSString *)$ 3 = 0x0000000100003b10 @“test 2”

+0

Thanks,works。 PS - 我希望它跳过前导0与NSLog%p,因为这是我得到..(lldb)p class1.variableA1 (NSString *)$ 0 = 0x00004a54 @“A1初始化” 2014-01-23 20:38: 56.348 UnderstandingBasics [1956:70b] A1的地址 - 0x4a54 – OutOnAWeekend

+0

我希望我们回到了16位地址的土地,这非常容易。 :-)当然我们是用汇编语言编写的,内存是8KB,调试器是一组16位开关和LED,每一位有一个。 – zaph

0

您可以使用register read来读取内存中的地址。 它将记录像eax = 0x00004940 @"string"和其他寄存器地址和说明。