调试Objective-C 对象在内存中的存储结构

arm64上的程序, x19 寄存器放的地址是0x15c55c160。 是个 TableViewController的实例。读出0x15c55c160地址处的值 0x000005a10009ed4f,

objc_class的定义是这样的
struct objc_class {
struct objc_class * isa; //类指针(类是元类的对象)
struct objc_class * super_class; /父类/
const char *name; /类名字/
long version; /版本信息/
long info; /类信息/
long instance_size; /实例大小/
struct objc_ivar_list *ivars; /实例参数链表/
struct objc_method_list **methodLists; /方法链表/
struct objc_cache *cache; /方法缓存/
struct objc_protocol_list *protocols; /协议链表/
};

所以我猜想,按照类的结构来看,前8个字节0x000005a10009ed4f应该是 isa指针的值。可是po 那个地址检查不出对象来。 而且接下来的字段 0x0000000000000000 明显有问题
我是哪里理解错了吗?

struct objc_class 是C的结构,po 是打不出他的名字的

不是的可以打印出来的 ,isa指向的实际上也是一个对象,类对象。 今天总算找到答案了。
第一个字段 0x000005a10009ed4f 其实是个指针,这个指针指向的内存地址才是这个类的结构。。。打印一下 0x000005a10009ed4f 地址的连续内存的内容,结构就清晰了。