一.常用的LLDB命令
1. 断点设置相关
1.1 给指定方法添加断点(自动新建一个断点组)
breakpoint set -n (函数名)
根据物理地址(反汇编用到,有时候调整BAD_EXC用到)
breakpoint set -a 0x10291dbcc 16位的物理地址
1.2 同时给多个方法添加断点(自动新建一个断点组,包含多个断点,只能整组删除)
breakpoint set -n "[类名 SEL]" -n "[类名 SEL]"
1.3 禁用(启用) 一组或者一个断点
breakpoint disable(enable) (组号或编号)
1.4 删除某一组断点,后面不跟组号或者编号,直接删除全部断点
breakpoint delete (组号或编号)
breakpoint delete
1.5 全局方法断点,工程中所有该方法都会添加断点
breakpoint set --selector 方法名
1.6 指定.m文件,指定方法添加断点
breakpoint set --file 文件名.m --selector 方法名
1.7 为整个工程所有包含该字符串的方法以及函数添加断点
breakpoint set -r 字符串
1.8 根据函数全名,添加断点
breakpoint set -F 函数全名
1.9 为指定编号的断点,添加执行命令,命令结尾输入“DONE” 结束
breakpoint command add 断点编号
1.10 查看指定编号处添加的命令
breakpoint command list 标号
1.11 删除指定断点处的执行命令
breakpoint command delete
二 .跳转指令
2.1 继续执行
continue 简写 c
2.2 单步执行 next 简写 n 或者 ni
n 源码级别,将子函数当做整体一步执行
ni 汇编级别,跳到下一条指令
2.3 查看上一个调用函数
up
2.4 查看下一个调用函数
down
2.5 查看对象信息print object
po 语句
2.6 动态执行内存操作
expression 简写 exp 或者 p
2.7 查看所有加载的模块
image list 简写 im li
查看输入模块名信息,
image list -o -f 模块名
2.8查看当前调用栈
bt
2.9 查看函数参数
frame variable
2.10 查看指定调用函数
frame select 标号
2.11 单步运行
s 源码级别 ,跳进子函数一步一步执行
si 汇编级别,跳到当前指令内部
2.12 返回上层调用栈
finish
2.13 回滚指令 直接从当前调用栈返回
thread return
三. chisel 用法
![](https://img.haomeiwen.com/i2204330/67620b25d4c39758.png)
mask -c "red" -a "0.5" 0x1092073f0
网友评论