逆向(四) 常见的LLDB 命令
2018-05-30 本文已影响43人
ziyouzhe4
之前有写过 Xcode动态调试原理 其中会涉及到使用LLDB命令, 今天有时间可以总结一些常用的LLDB命令,可以帮助你提高开发调试的效率.
指令的格式:
<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]
breakpoint : 比如给test函数设置断点 : breakpoint set -n test
-n 是代表name的意思
test是方法名字
help : 查看指令的用法 : help breakpoint
help breakpoint
help breakpoint set 等等都可以
expression : 执行一个表达式 : expression self.view.backgroundColor = [UIColor redColor]
expression这个命令可以避免重新运行程序带来的耗时操作,可以在断点下面直接设置,跳过断点就可以显示效果了,如下图:
expression1.png
expression2.png
添加了 expression self.view.backgroundColor = [UIColor redColor];
命令后,跳过断点,不用重新运行就可以看见界面的变化
thread backtrace : 打印堆栈信息 类似于 bt 命令
backtrace.png
输入 bt 打印相同的内容,可以查看函数调用的堆栈信息
thread return : 让函数直接返回某个值,不会执行断点后面的代码了
threadreturn.png
执行完thread return直接跳出sss方法,sss中log都不会打印
frame variable : 打印当前栈帧的变量
image.png