使用Xcode查看内存数据

实时查看内存数据

在Xcode菜单栏中通过以下顺序可以查看对象的内存数据:

Debug -> Debug Workfllow -> View Memory

对一个NSObject实例对象来说,通过该方法观察到前8个字节为非0值,后8个字节为全为0,第17位开始为非0值。 由此可以推断,前8个字节代表isa指针,也从侧面验证了一个NSObject实例对象指针指向内存的大小为16个字节。

常用的lldb指令

print

print用于打印指针地址,可缩写为p.

po

po用于打印对象,即print object.

memory read

  • memory read用于读取内存,可以缩写为x。其使用方法为:
1
x/数量|格式|字节数  内存地址

数量参数说明要打印多少个数据,格式参数和字节参数说明怎么样打印这些数据。这些参数都可以省略,即直接使用memory read 内存地址.

格式参数说明:

1
x是16进制,f是浮点,d是10进制

字节参数说明:

1
2
b:byte 1字节,h:half word 2字节
w:word 4字节,g:giant word 8字节

例如,x/3xg表示以16进制的形式打印3个字节串,每个字节串包含8个字节。

memory write

memory write用于修改内存中的值. 使用方法为:

1
memory  write  内存地址  新值