LLDB|LLDB 调试指令集
目录
- 发展史
- 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.png 常用的LLDB指令 指令格式:
[ [...]][-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.查询模块 【LLDB|LLDB 调试指令集】
image list
查看当前模块寄存器的信息image lookup -t
+ 类型: 查找某个类型的信息image lookup -a
+ 地址image lookup -n
+ 符号或函数推荐阅读
- 移动端h5调试方法
- 动态组件与v-once指令
- 那些年bug总结出来的调试代码技巧
- 03_ARMv8指令集介绍加载与存储指令
- 汇编实验(格雷码转二进制(ASCII码)的实现和调试)
- Android免Root|Android免Root 修改程序运行时内存指令逻辑(Hook系统函数)
- TODO(小程序手机预览调试)
- 【Camera专题】Qcom-高通OTP编程调试指南-上
- 10-Vue的常用指令
- Flutter应用如何调试--DevTools介绍(下)