【问题标题】:How to print the address of a NSString in Xcode Debugger如何在 Xcode 调试器中打印 NSString 的地址
【发布时间】:2014-01-23 14:55:58
【问题描述】:

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

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

【问题讨论】:

  • 有:po NSLog(@"%p", object);

标签: xcode pointers nsstring lldb


【解决方案1】:

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

例子:

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

(lldb) po 字符串1
测试 1
(lldb) p 字符串1
(NSString *) $2 = 0x0000000100003af0 @"test 1"
(lldb) p 字符串2
(NSString *) $3 = 0x0000000100003b10 @"test 2"

【讨论】:

  • 谢谢,工作。 PS - 我希望它用 NSLog %p 跳过前导 0,因为这是我得到的 .. (lldb) p class1.variableA1 (NSString *) $0 = 0x00004a54 @"A1 initialized" 2014-01-23 20:38:56.348 [1956:70b] A1 的地址 - 0x4a54
  • 我希望我们回到 16 位地址的土地上,这样容易多了。 :-) 当然我们是用汇编程序编写的,内存是 8KB,调试器是一组 16 个开关和 LED,每个位一个。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-11
    • 2013-10-01
    • 2011-06-18
    • 1970-01-01
    • 2012-10-15
    • 2012-07-15
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多