目录
- 发展史
- LLDB如何实现调试真机
- 常用的LLDB指令
- 1.help
- 2.expression
- 3.thread backtrace
- 4.thread return
- 5.frame variable
- 6.当前断点执行
- 7.breakpoint
- 8.watchpoint
- 9.image
发展史
LLDB如何实现调试真机
当xcode识别到iPhone手机设备的时候,会自动把debugserver安装到iPhone 上面,然后就可以通过LLDB动态调试手机上的App。
常用的LLDB指令
指令格式:<command> [<subcommand> [<subcommand>...]] <action> [-options [option�value]] [argument [argument...]]
<命令> [<子命令>] <命令操作>[命令选项][命令参数]
1.查看帮助help
命令使用
help register
help register read
2.执行一个表达式expression--
和 print
,p
,call
指令的效果一样
expression [self viewDidLoad]
p [self viewDidLoad]
call [self viewDidLoad]
3.打印线程调用堆栈信息:thread backtrace
或者bt
4.让函数直接返回值,不执行函数剩下的代码 :thread return
5.当前栈的的变量: frame variable
6.当前断点执行
thread continue
、 continue
c
: 程序继续运行
thread
step-over
next
n
:单步运行,把子函数当作整体一步
thread step-in
step
s
:单步运行,有子函数进入子函数运行
thread step-out
finish
:直接执行完当前函数所有代码
thread step-inst-over
nexti
ni
:汇编级单步运行,把子函数当作整体一步
thread step-inst
stepi
si
:汇编级单步运行,有子函数进入子函数运行
7.设置断点
breakpoint set -a
+ 函数地址
breakpoint set -n
+ 函数名
breakpoint set -n test
breakpoint set -n touchesBegan:withEvent:
breakpoint set -n "-[ViewControllertouchesBegan:withEvent:]"
breakpoint list
列出所有断点 (带编号)
breakpoint disable
+ 编号 :禁用
breakpoint enable
+ 编号 :启用
breakpoint delete
+ 编号 :删除
8.设置内存断点
内存发生改变的时候触发
watchpoint set variable
+ 变量
watchpoint set variable self->age
watchpoint set expression
+ 地址
watchpoint set variable &(self->age)
watchpoint list
watchpoint disable
+ 编号
watchpoint enable
+ 编号
watchpoint delete
+ 编号
watchpoint command add
+ 编号
watchpoint command list
+ 编号
watchpoint command delete
+ 编号
9.查询模块
image list
查看当前模块寄存器的信息
image lookup -t
+ 类型: 查找某个类型的信息
image lookup -a
+ 地址
image lookup -n
+ 符号或函数