1、实例化对象后,指针变量p1放在栈区
(lldb) po &p1
0x00007ffeeba54160
2、读取栈地址内存可以看到p1的值,p1指针的值是一个堆地址,里面放着LGPerson isa指针
(lldb) memory read 0x00007ffeeba54160
0x7ffeeba54160: 60 03 15 03 00 60 00 00 0a 00 00 00 00 00 00 00 ..............
0x7ffeeba54170: c0 93 40 9e b2 7f 00 00 40 d4 1a 04 01 00 00 00 ..@.....@.......
(lldb) po 0x600003150360
<LGPerson: 0x600003150360>
3、isa 指针,读取isa指针地址指向的内存地址内容
(lldb) memory read 0x600003150360
0x600003150360: 08 d5 1a 04 01 00 00 00 00 00 00 00 00 00 00 00 ................
0x600003150370: 70 03 0f 58 ca 48 00 00 fb 07 00 00 00 00 00 00 p..X.H..........
4、类对象,里面有类对象isa指针****0x01041ad508
(lldb) po 0x01041ad508
LGPerson
5、读取类对象isa指针指向内存地址,可以看到存放的是元类
(lldb) memory read 0x01041ad508
0x1041ad508: e0 d4 1a 04 01 00 00 00 00 fd d0 89 ff 7f 00 00 ................
0x1041ad518: 80 db 61 02 00 60 00 00 03 00 00 00 10 80 02 00 ..a..`..........
(lldb) po 0x01041ad4e0
LGPerson
6、读取元类的isa ,可以看到存放的是nsobject
(lldb) memory read 0x01041ad4e0
0x1041ad4e0: d8 fc d0 89 ff 7f 00 00 d8 fc d0 89 ff 7f 00 00 ................
0x1041ad4f0: 00 8b d4 01 00 60 00 00 07 00 00 00 31 c0 01 00 .....`......1...
(lldb) po 0x7fff89d0fcd8
NSObject
7、读取nsobject 的isa 指针,可以看到仍然是nsobject
(lldb) memory read 0x7fff89d0fcd8
0x7fff89d0fcd8: d8 fc d0 89 ff 7f 00 00 00 fd d0 89 ff 7f 00 00 ................
0x7fff89d0fce8: 00 2c f5 00 00 60 00 00 0f 00 00 00 31 c0 09 00 .,...`......1...
(lldb) po 0x7fff89d0fd
549748068605
(lldb) po p1.superclass
NSObject
(lldb) po &p1.superclass
error: <user expression 7>:1:1: address of property expression requested
&p1.superclass
^~~~~~~~~~~~~~
(lldb) x p1.superclass
0x7fff89d0fd00: d8 fc d0 89 ff 7f 00 00 00 00 00 00 00 00 00 00 ................
0x7fff89d0fd10: 00 20 f5 00 00 60 00 00 0f 00 00 00 10 80 09 00 . ...`..........
(lldb) memory read 0x7fff89d0fd
error: memory read failed for 0x7fff89d000