目录
格式相关
1、格式
x: 16进制
d: 10进制
f: 浮点
2、字节大小
b: Byte 1字节
h: half word 2字节
w: word 4字节
g: giant word 8字节
3、举例
memory read/4xg 内存地址
或者
x/4xg 内存地址
读取内存地址中的内容 分4组打印 格式是16进制 每组8个字节
memory read/s 内存地址
以字符串形式读取内存
寄存器相关
1、读取寄存器的值
register read
2、读取某一个寄存器
register read x0
2、修改寄存器的值
register write x0 0x10
3、打印
po $x0
打印方法的调用者
x/s $x1
打印方法名
po $x2
打印参数
po $x3
打印参数
po $x4
打印参数
内存相关
1、读取内存的值
memory read 0x1000027fa
x 0x1000027fa
2、特定格式读取内存值
memory read/4gx 0x1000027fa
4组 8字节 16进制
memory read/2wd 0x1000027fa
2组 4字节 10进制
3、修改内存的值
memory write 0x1000027fa
express p po 命令
1、说明
oc里所有的对象都是用指针表示的,打印出来的是对象的指针,而不是对象本身,可以采用 -o 来打印对象本身
为了更加方便的时候,LLDB为 “expression -o —” 定了一个别名 :po
2、p:打印内存中的值
可以打印基本类型
a = 10
(lldb) p a
(int) $9 = 10
也可以打印对象
UIView * testView = [[UIView alloc] init];
(lldb) p testView
(UIView *) $10 = 0x0000000134eac910
3、po:打印内存中的值(如果是基本类型输出内存中存储的值 如果是对象 输出对象的description描述 )
打印基本类型
a = 10;
(lldb) po a
10
打印对象
UIView * testView = [[UIView alloc] init];
(lldb) po testView
<UIView: 0x134eac910; frame = (0 0; 100 100); layer = <CALayer: 0x134eaca80>>
4、expression
(lldb) expression testView.frame = CGRectMake(0, 0, 100, 100);
(CGRect) $5 = (origin = (x = 0, y = 0), size = (width = 100, height = 100))
5、递归打印子控件
po [self.view recursiveDescription]
6、通过函数地址打印函数信息
p (IMP)0x000231
单步调试指令
1、源码级别的单步调试
n 一步一步调试 遇见函数不会进入
s 一步一步调试 遇见函数会进入
2、汇编级别的单步调试
ni 一步一步调试 遇见函数不会进入
si 一步一步调试 遇见函数会进入
3、直接执行完当前函数的所有代码,返回到上一个函数(遇到断点会卡主)
finish
4、退出lldb调试
quit
5、bt
打印函数调用栈
行者常至,为者常成!