breakpoint 命令
breakpoint 是一个用于在断点上操作的命令,使用 help breakpoint
可以查看命令参数。
breakpoint 的缩写
在 lldb 中,从 br
到 breakpoint
都可以作为 command
执行断点相关命令,而 b
却是 breakpoint set
的缩写形式。比如:
-
br list
是break list
的缩写 -
b -n main
是breakpoint -name main
的缩写
子命令(subCommands)
子命令 | 描述 |
---|---|
clear | 删除或禁用指定源文件和行匹配的断点 |
command | 用于添加、删除和列出遇到断点时执行的LLDB命令的命令 |
delete | 删除指定断点,如果未指定则删除全部 |
disable | 禁用。同上 |
enable | 开启,同上 |
list | 断点列表 |
modify | 修改断点 |
name | 管理断点标签名称 |
read | 从文件中读取断点列表 |
write | 将断点列表写入文件 |
set | 在执行时设置断点 |
设置断点
-
在 demo 文件的 12行设置断点
breakpoint set --file demo.m --line 12
-
对 demo 函数设置断点
breakpoint set --name demo
-
对名为 demo 的 Objective-C 方法设置断点
breakpoint set --selector demo
清空断点
br clear -l <linenum 行数> -f<filename 文件名称>
断点列表
breakpoint list
禁用断点
breakpoint disable
遇到断点时执行的命令
breakpoint command add 命令就是给断点添加命令的命令。他会让你输入增加哪些命令,输入'DONE'表示结束。
breakpoint command add -o "po self"
Watchpoint 命令
除了断点,还可以使用 watchpoint 观察点, watchpoint 观察点是直接设置在内存地址上的,可以监听该内存地址位置的变化,wa 是 watchpoint 的缩写形式。
子命令 | 描述 |
---|---|
command | 用于添加、删除和列出观察点变化时执行的LLDB命令的命令 |
delete | 删除指定观察点,如果未指定则删除全部 |
disable | 禁用。同上 |
enable | 开启,同上 |
list | 观察点列表 |
ignore | 忽略观察点 |
set | 在执行时设置观察点 |
设置观察点
watchpoint set variable gloabal_var
查看当前设置的全部观察点
watchpoint list
删除观察点
watchpoint delete
thread 命令
thread 可以操作和线程相关的指令
子命令
子命令 | 描述 |
---|---|
backtrace | 显示当前调用堆栈 |
continue | 继续执行 |
exception | 显示异常 |
info | 显示信息 |
jump | 跳转到指定地址 |
list | 线程列表 |
select | 切换当前选择的线程 |
trace | 追踪线程信息 |
.. | .. |
检查线程状态
thread list
获取线程回溯
thread backtrace
线程选择
thread select 2
frame 命令
frame 命令用于检查堆栈状态
子命令
子命令 | 描述 |
---|---|
diagnose | 尝试确定当前停止位置用于到达寄存器或地址的路径 |
info | 获取当前堆栈额的信息 |
recognizer | 用于编辑和查看帧识别器的命令 |
select | 切换当前选中堆栈 |
variable | 显示堆栈的参数和局部变量 |
显示堆栈的参数和局部变量
frame variable
expression 命令
expression 在当前线程上执行表达式。使用 LLDB 的默认格式显示任何返回值。
短命令 p、print 是 expression 的缩写形式
短命令 po 是 expression -O 的缩写形式,用于显示对象的描述
网友评论