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 的前身是 GDB
LLDB如何实现调试真机 当xcode识别到iPhone手机设备的时候,会自动把debugserver安装到iPhone 上面,然后就可以通过LLDB动态调试手机上的App。
LLDB|LLDB 调试指令集
文章图片
LLDB.png 常用的LLDB指令 指令格式: [ [...]][-options [option?value]] [argument [argument...]]
<命令> [<子命令>] <命令操作>[命令选项][命令参数]
1.查看帮助help命令使用 help register
help register read
2.执行一个表达式expression--printpcall指令的效果一样
expression [self viewDidLoad] p [self viewDidLoad] call [self viewDidLoad]

3.打印线程调用堆栈信息:thread backtrace或者bt 4.让函数直接返回值,不执行函数剩下的代码 :thread return 5.当前栈的的变量: frame variable 6.当前断点执行 thread continuecontinue 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+ 符号或函数

    推荐阅读