LLDB 调试命令

297 阅读7分钟

以下是调试器命令的列表及说明:

apropos -- 列出与特定单词或主题相关的调试器命令。 breakpoint -- 用于操作断点的命令(查看 'help b' 以获取简写)。 command -- 管理自定义 LLDB 命令的命令。 disassemble -- 在当前目标中反汇编指定的指令。默认为当前线程和堆栈帧的当前函数。 expression -- 在当前线程上评估表达式。使用 LLDB 的默认格式显示任何返回值。 frame -- 选择和检查当前线程的堆栈帧的命令。 gdb-remote -- 通过远程 GDB 服务器连接到进程。如果未指定主机,则假定为 localhost。gdb-remote 是 'process connect --plugin gdb-remote connect://:' 的缩写。 gui -- 切换到基于 curses 的 GUI 模式。 help -- 显示所有调试器命令的列表,或提供有关特定命令的详细信息。 kdp-remote -- 通过远程 KDP 服务器连接到进程。如果未指定 UDP 端口,则默认使用端口 41139。kdp-remote 是 'process connect --plugin kdp-remote udp://:' 的缩写。 language -- 特定于源语言的命令。 log -- 控制 LLDB 内部日志的命令。 memory -- 操作当前目标进程中的内存的命令。 platform -- 管理和创建平台的命令。 plugin -- 管理 LLDB 插件的命令。 process -- 与当前平台上的进程交互的命令。 quit -- 退出 LLDB 调试器。 register -- 访问当前线程和堆栈帧的寄存器的命令。 reproducer -- 操作重现器的命令。重现器使捕获完整的调试会话及其所有依赖项成为可能。生成的重现器用于在调试调试器时重放调试会话。因为重现器需要从头到尾的整个调试会话,所以通常需要通过命令行驱动启动调试器处于捕获或重放模式。重现器与记录-重放调试无关,因为在重放期间无法与调试器交互。 script -- 使用提供的代码调用脚本解释器并显示任何结果。如果没有提供代码,则启动交互式解释器。 session -- 控制 LLDB 会话的命令。 settings -- 管理 LLDB 设置的命令。 source -- 用于检查当前目标进程描述的源代码的命令。 statistics -- 打印有关调试会话的统计信息。 swift-healthcheck -- 提供与 Swift 表达式评估器相关的日志记录,包括 Swift 编译器诊断信息。这有助于识别在调试器中导致模块导入失败的项目配置错误。该命令用于在发生表达式评估器失败后运行。 target -- 操作调试器目标的命令。 thread -- 操作当前进程中一个或多个线程的命令。 trace -- 加载和使用处理器跟踪信息的命令。 type -- 操作类型系统的命令。 version -- 显示 LLDB 调试器的版本。 watchpoint -- 操作监视点的命令。

当前命令的缩写形式(输入 'help command alias' 以获取更多信息): add-dsym -- 通过指定调试符号文件的路径或使用选项指定模块,将调试符号文件添加到目标的当前模块之一。 attach -- 按 ID 或名称附加到进程。 b -- 使用多种简写格式设置断点。 bt -- 显示当前线程的调用堆栈。任何数字参数最多显示该数量的堆栈帧。参数 'all' 显示所有线程。 c -- 继续当前进程的所有线程的执行。 call -- 在当前线程上评估表达式。使用 LLDB 的默认格式显示任何返回值。 continue -- 继续当前进程的所有线程的执行。 detach -- 分离当前目标进程。 di -- 在当前目标中反汇编指定的指令。默认为当前线程和堆栈帧的当前函数。 dis -- 在当前目标中反汇编指定的指令。默认为当前线程和堆栈帧的当前函数。 display -- 在每个停止时评估表达式(参见 'help target stop-hook')。 down -- 选择较新的堆栈帧。默认移动一个堆栈帧,数字参数可以指定任意数量。 env -- 查看和设置环境变量的快捷方式。 exit -- 退出 LLDB 调试器。 f -- 从当前线程中按索引选择当前堆栈帧(参见 'thread backtrace')。 file -- 使用参数作为主要可执行文件创建一个目标。 finish -- 完成执行当前堆栈帧并在返回后停止。默认为当前线程,除非另有指定。 history -- 显示此会话中命令的历史记录。历史列表中的命令可以使用“!”再次运行。“!-”将重新运行列表末尾的 命令(计算当前命令)。 image -- 访问一个或多个目标模块的信息的命令。 j -- 将程序计数器设置为新地址。 jump -- 将程序计数器设置为新地址。 kill -- 终止当前目标进程。 l -- 使用多种简写格式列出相关源代码。 list -- 使用多种简写格式列出相关源代码。 n -- 源级单步执行,跳过调用。默认为当前线程,除非另有指定。 next -- 源级单步执行,跳过调用。默认为当前线程,除非另有指定。 nexti -- 指令级单步执行,跳过调用。默认为当前线程,除非另有指定。 ni -- 指令级单步执行,跳过调用。默认为当前线程,除非另有指定。 p -- 在当前线程上评估表达式。使用 LLDB 的默认格式显示任何返回值。 parray -- parray -- LLDB 将评估 EXPRESSION 以获取内存中的指向数组的类型指针,并将显示数组的 COUNT 个元素。 po -- 在当前线程上评估表达式。使用类型作者控制的格式显示任何返回值。 poarray -- poarray -- LLDB 将评估 EXPRESSION 以获取内存中 COUNT 个对象的数组的地址,并对其调用 po。 print -- 在当前线程上评估表达式。使用 LLDB 的默认格式显示任何返回值。 q -- 退出 LLDB 调试器。 r -- 在调试器中启动可执行文件。 rbreak -- 在可执行文件中设置断点或一组断点。 re -- 访问当前线程和堆栈帧的寄存器的命令。 repl -- 在当前线程上评估表达式。使用 LLDB 的默认格式显示任何返回值。 run -- 在调试器中启动可执行文件。 s -- 源级单步执行,进入调用。默认为当前线程,除非另有指定。 shell -- 在主机上运行 shell 命令。 si -- 指令级单步执行,进入调用。默认为当前线程,除非另有指定。 sif -- 通过当前块进行单步执行,如果直接进入与 TargetFunctionName 匹配的函数,则停止。 step -- 源级单步执行,进入调用。默认为当前线程,除非另有指定。 stepi -- 指令级单步执行,进入调用。默认为当前线程,除非另有指定。 t -- 更改当前选定的线程。 tbreak -- 使用多种简写格式设置一次性断点。 undisplay -- 停止在每次停止时显示表达式(由 stop-hook 索引指定)。 up -- 选择较旧的堆栈帧。默认移动一个堆栈帧,数字参数可以指定任意数量。 v -- 显示当前堆栈帧的变量。默认为作用域中的所有参数和局部变量。可以指定参数、局部、文件静态和文件全局变量的名称。 var -- 显示当前堆栈帧的变量。默认为作用域中的所有参数和局部变量。可以指定参数、局部、文件静态和文件全局变量的名称。 vo -- 显示当前堆栈帧的变量。默认为作用域中的所有参数和局部变量。可以指定参数、局部、文件静态和文件全局变量的名称。 x -- 从当前目标进程的内存中读取数据。

有关任何命令的更多信息,请输入 'help '。