用途:为 Xcode 中的 LLDB 提供按任务组织的完整命令参考,帮助快速定位所需命令。调试工作流与决策树另见 axiom-lldb。
主要能力: 一、变量查看。v / frame variable 直接读内存无需编译,适合 Swift 值,支持 -d、-T、-R、-D、-P、-F 等标志,但不能求值表达式、计算属性或函数调用;p / expression 编译并执行表达式,结果存入 $R0 等编号变量;po 调用 debugDescription/description,适合自定义调试字符串、NSError、NSNotification 与对象集合,对无 CustomDebugStringConvertible 的 Swift 结构体和协议类型会失败;register read 可读寄存器。 二、断点。可按文件行、函数名、限定名、ObjC selector、正则、内存地址设置;支持条件(-c)、忽略次数(-i)、一次性(-o);可用 breakpoint command add 添加命中时执行的命令;支持异常断点(-E swift / -E objc)与符号断点(如 UIViewAlertForUnsatisfiableConstraints、swift_willThrow);可 list、enable、disable、delete、modify。watchpoint 用于变量内存变化监控,硬件观察点每进程约限 4 个。 三、线程与调用栈。bt、bt N、bt all 查看回溯;thread list/info/select 管理线程;frame info/select、up、down 导航栈帧;thread return 可强制提前返回,但会跳过清理代码,需谨慎。 四、表达式求值。支持 Swift 与 ObjC 表达式(expr -l objc --),可用于改 UI、改状态、触发 CATransaction.flush 刷新 UI、调用 Self._printChanges() 调试 SwiftUI,以及获取运行时类型。 五、进程控制。continue、process interrupt、step-over/in/out、step-inst,以及 process launch/attach/detach、kill。 六、内存与镜像。memory read/find、image lookup(-a 地址、-n 名称、-rn 正则)、image list,常用于判断崩溃地址属于哪个框架。 七、.lldbinit 定制。启动时读取 ~/.lldbinit,也可在 Xcode Scheme 的 Run → Options 指定 LLDB Init File;可定义 command alias(如 flush、views、constraints)、type summary add 自定义类型摘要,并用 settings set 调整语言模式、集合显示条数等。
常见问题:expression 解析失败可改用 v、简化表达式或切 ObjC;变量不可用通常是优化导致,应切 Debug 或 -Onone;语言模式错误用 settings set target.language swift;表达式引发崩溃多因副作用;LLDB 卡顿通常是编译复杂表达式,优先用 v。
限制:异常断点按名称过滤需用 Xcode GUI;文档未提供价格、平台支持范围与具体版本要求等信息。