实时查看内存数据
在Xcode菜单栏中通过以下顺序可以查看对象的内存数据:
Debug -> Debug Workfllow -> View Memory
对一个NSObject实例对象来说,通过该方法观察到前8个字节为非0值,后8个字节为全为0,第17位开始为非0值。 由此可以推断,前8个字节代表isa指针,也从侧面验证了一个NSObject实例对象指针指向内存的大小为16个字节。
常用的lldb指令
print用于打印指针地址,可缩写为p.
po
po用于打印对象,即print object.
memory read
- memory read用于读取内存,可以缩写为x。其使用方法为:
1 | x/数量|格式|字节数 内存地址 |
数量参数说明要打印多少个数据,格式参数和字节参数说明怎么样打印这些数据。这些参数都可以省略,即直接使用memory read 内存地址
.
格式参数说明:
1 | x是16进制,f是浮点,d是10进制 |
字节参数说明:
1 | b:byte 1字节,h:half word 2字节 |
例如,x/3xg表示以16进制的形式打印3个字节串,每个字节串包含8个字节。
memory write
memory write用于修改内存中的值. 使用方法为:
1 | memory write 内存地址 新值 |