LLDB 是一个调试器技能,用于指导在 LLDB 会话中进行 C/C++/Swift/Objective-C 程序的调试,并帮助将已有的 GDB 知识映射到 LLDB。适用于 macOS、FreeBSD 或 Linux-clang 环境。
一、用途 该技能覆盖命令差异、Apple 平台特性、Python 脚本编写以及 IDE 集成,触发场景包括:在 macOS 上调试 C++ 程序、了解 LLDB 与 GDB 的区别、将某条 GDB 命令转换为 LLDB 对应命令、处理 LLDB 显示变量为 <unavailable> 的情况、在 VS Code 中使用 LLDB,以及编写 LLDB Python 脚本。
二、启动方式 可加载二进制、带参数运行、附加到 PID、加载 core dump 或同时加载二进制与 core: lldb ./prog lldb ./prog -- arg1 arg2 lldb -p 12345 lldb -c core.1234 lldb ./prog core.1234
三、GDB 到 LLDB 的命令映射 技能提供命令对照,例如 run 对应 process launch(或 r),continue 对应 process continue(或 c),next 对应 thread step-over(或 n),step 对应 thread step-in(或 s),finish 对应 thread step-out(或 finish),break main 对应 breakpoint set -n main(或 b main),print x 对应 frame variable x(或 p x),backtrace 对应 thread backtrace(或 bt),info threads 对应 thread list,quit 对应 quit(或 q)等。完整对照参见 references/gdb-lldb-map.md。
四、断点 支持按名称、文件:行号、地址、正则设置断点,并支持列出、删除、禁用/启用断点,以及在命中时执行命令(如 p x 后 continue)。
五、状态检查 可打印变量与表达式、查看全部局部变量与参数、读取寄存器、读取内存(支持 GDB 兼容语法 x/10xw),以及进行类型信息查询(image lookup --type / type lookup)。
六、观察点 支持设置写观察点、读观察点、读写观察点,以及按地址设置观察点,并支持列出与删除观察点。
七、线程 支持列出线程、选择线程、查看全部线程回溯、限制回溯深度,以及针对单线程进行步进。
八、macOS / Apple 相关特性 包括在共享缓存中查找符号、为 Objective-C 方法设置断点、使用 po 检查 Objective-C 对象,以及查看已加载库(image list,-b 为简洁模式)。
九、VS Code 集成 需安装 CodeLLDB 扩展,并提供 .vscode/launch.json 配置示例,包含 program、args、cwd、preLaunchTask 等字段。
十、LLDB Python 脚本 提供脚本示例,通过 lldb 模块定义命令并注册到调试器,使用 command script import 加载脚本。
十一、相关技能 可结合 skills/debuggers/gdb 处理 GDB 工作流,结合 skills/debuggers/core-dumps 进行 core dump 分析,结合 skills/compilers/clang 构建带调试信息的程序。
关于该技能的收费、价格、平台限制等具体信息暂未提供。