用途:为 iOS 调试提供可复用的专家级 LLDB 工作流,覆盖非常规命令、Python 脚本扩展、DTrace、内存分析与二进制逆向。适用于需要系统性判断与既定流程的调试任务;若任务与该技能无关或只需简单答案,则不应使用。
主要能力:正则断点(如 rbreak . -s ModuleName -o 1);断点持久化(breakpoint write/read -f 文件);表达式求值控制(-i0、-u0);类型摘要(type summary add);寄存器与标志位修改(register write rflags $rflags ^ 64);watchpoint 捕获全部 ivar 写入(硬件上限每进程 4 个、每个最多 8 字节);Python 自定义命令(SBDebugger 层级、必须用 optparse 而非 argparse、用 result.AppendMessage() 而非 print());DTrace 追踪 ObjC 与 Swift;Malloc Stack Logging 配合 msl 排查 use-after-free;Mach-O 模块与符号查找;反调试绕过(ptrace PT_DENY_ATTACH=31,thread return 0);.lldbinit 配置与 Chisel 命令。
使用方式:先读 SKILL.md,再按需加载引用的深入文件;按有序指引、检查清单与决策规则执行,而非摘取孤立片段。跨 Swift/ObjC 上下文时须显式使用 -l swift 或 -l objc。Python 脚本通过 command script import 注册,可在 ~/.lldbinit 中加载。
适用场景:定位属性写入来源、EXC_BAD_ACCESS 排查、剥离二进制分析、可复用自定义命令、条件分支翻转、调试器检测绕过、跨会话保留断点、视图可视化调试。
限制:watchpoint 数量与字节受限;pdb 仅在终端 LLDB 可用,Xcode 控制台不支持;objc$target 自 SE-0160 起会漏掉 Swift @objc 方法,需改用 pid$target;.lldbinit 在进程附加前加载,只应放命令定义与设置。资料未提供收费、价格与平台支持信息。