$ p self.view.backgroundColor = [UIColor redColor] #执行表达式等同expression
$ po #打印对等同于expression -O
$ bt #打印堆栈信息等同于 thread backtrace
$ thread return #让函数直接返回某个值,不执行断点后面的代码
$ frame variable # 打印当前栈侦的变量
$ c #程序继续运行等同于 thread continue
$ n #单步执行,子函数当作整体一步执行 等同于 thread step-over
$ s # 单步执行,遇到子函数进入至函数 等同于 thread step-in
$ finish #执行完当前函数,返回上个函数等同于 thread step-out
$ si #指令集单步执行 stepi
$ ni #指令集单步执行 nexti
####断点
$ breakpoint set -a #加函数地址,给函数设置断点
$ breakpoint set -n '[ViewController touchesBegan:whithEvent:]' #加函数名 设置断点
$ breakpoint set -r #加正则表达式,设置断点
$ breakpoint set -s 动态库 -n 函数名 #给动态库的函数设置断点
$ breakpoint list #设置所有的断点
$ breakpoint disable #加断点编号,禁用断点
$ breakpoint enable #加断点编号,启用断点
$ breakpoint delete #加断点编号,删除断点
$ breakpoint command add 断点编号 #给断点预先添加执行命令,断点出发后执行,输入指令DONE结束输入
$ breakpoint command list 断点编号 #查看断点预设的执行命令
$ breakpoint command delete 断点编号 #删除断点预设的执行命令
####内存断点 在内存发生改变的时候触发
$ watchpoint set variable 变量名称 #watchpoint set variable self->age
$ watchpoint set expression 内存地址 # watchpoint set expression &(self->age)
$ watchpoint list 断点编号
$ watchpoint disable 断点编号
$ watchpoint enable 断点编号
$ watchpoint delete 断点编号
$ watchpoint command add 断点编号
$ watchpoint command list 断点编号
$ watchpoint command delete 断点编号
####模块查找 image lookup
$ image lookup -t 类型 #查看类型信息 image lookup -t ViewController
$ image lookup -a 内存地址 # 根据内存地址查找在模块中的位置
$ image lookup -n 符号或者函数名称 #查找符号或者函数名称的位置
$ image list #加载模块列表信息
$ image list -o -f #打印出模块的偏移地址、模块路径
LLDB
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- mac 中安装golang调试器dlv 调试时候出现错误 debugserver or lldb-server n...
- 现在你已经学到了两个最基本的命令apropos和help.是时候研究一下LLDB是如何把自己附加到进程上的.你会学...
- 本来一直想给大家普及一下lldb的使用,因为身边有很多朋友虽然开发了很久,但是还是不会使用调试器,还傻傻的打一个l...
- 在上篇文章从fishhook看runtime,hook系统C函数中已经提到了利用LLDB的部分命令。在我们玩逆向的...