LLDB操作指令总结
LLDB全称轻量级的高性能调试器(Low Level Debugger),默认内置于Xcode中。能够很好的运用它会使我们的开发效率事半功倍。
语法规则
LLDB命令语法特性,可简写print
命令可简写成,p
,pr
,pri
,prin
。其他命令以此类推。
常用命令
print、po命令
他们可以输出,可以调用方法,可以写表达式。
print
/p
:打印变量po
: 打印值;如果是对象,打印其description的信息
语法
1 | p 变量名 |
示例
1 | (lldb) p object |
expression
执行一个表达式,并将表达式返回的结果输出。
可以执行表达式来动态改变程序运行的轨迹。 假如我们在运行过程中,突然想把 self.view 颜色改成红色,看看效果。我们不必写下代码,重新run,只需暂停程序,用expression改变颜色,再刷新一下界面,就能看到效果。
语法
1 | expression 变量名 = 数值 |
示例
1 | expression $1 = 10 |
x
查看内存中读取一个地址的信息
语法
1 | x/数量-格式-字节大小 内存地址 |
示例
1 | (lldb) x 0x00000001010c7c70 |
- 格式
- x:16进制;
- f:浮点数;
- d:十进制
- 字节大小
- b - byte 1字节
- h - half word 2字节
- w - word 4字节
- giant word 8字节
memory
修改内存中的值
语法
1 | memory write 内存地址 数值 |
示例
1 | memory write 0x0000010 10 |
进阶指令
breakpoint
列出部分或者所有的断点
语法
1 | breakpoint list |
参数
1 | # 查看某一组的信息 |
给所有函数名为xxx的都设置断点
语法
1 | breakpoint set –name c函数名/oc方法 |
示例
1 | # C |
给某个文件的行设置断点
语法
1 | breakpoint set –file 文件名 –line 行号 |
给某个文件的方法设置断点
语法
1 | breakpoint set --file 文件名 --selector 方法名 |
删除断点某一组
语法
1 | breakpoint delete 断点组id |
显示调用栈
语法
1 | bt |