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 调试指令集_第1张图片
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.查询模块

image list 查看当前模块寄存器的信息
image lookup -t + 类型: 查找某个类型的信息
image lookup -a+ 地址
image lookup -n+ 符号或函数

你可能感兴趣的:(LLDB 调试指令集)