2014-01-23 37 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"和其他寄存器地址和說明。