- Published on
LLDB的3个常用调试命令
- Authors
- Name
LLDB 是 LLVM 项目的调试器,也是 Xcode 默认使用的调试工具。
在 Swift 和 Objective-C 开发里,我们最常用到的其实不是一大串复杂命令,而是下面这三个。
在 Xcode 中,我们既可以通过左侧的变量面板看当前状态,也可以直接在控制台里输入 LLDB 命令。
1. v
v 是 frame variable 的别名。
它适合查看当前栈帧中的变量值,速度快,也比较直接。
v
v user
通常可以把它理解成“看当前作用域里的变量快照”。
在 Swift 里,它更适合看已经存储下来的属性和值。
2. p
p 是 expression 的别名。
它会执行表达式,所以不只是“看值”,还可以“算结果”。
p count
p users.count
p someFunction()
它适合:
- 查看计算属性
- 执行表达式
- 临时验证某段逻辑
不过也因为它会求值,所以副作用要自己留意。
3. po
po 是 expression --object-description 的简写。
它适合打印对象的可读描述,调试时非常常用。
po user
po view.frame
如果对象提供了更友好的描述实现,po 的输出会更容易阅读。
extension Bird: CustomDebugStringConvertible {
var debugDescription: String {
return "The bird \(name) is \(conservationStatus.title)"
}
}
如果对象实现了 CustomDebugStringConvertible,po 通常会优先输出 debugDescription。
如果没有,就会回退到系统默认描述。
什么时候用哪个
- 只想快速看当前变量:用
v - 想执行表达式或看计算结果:用
p - 想看对象的可读输出:用
po
如果刚开始学 LLDB,只记住这三个命令,已经能覆盖日常调试里的大部分场景。