LLDB有一个名为类型摘要的有趣功能,它允许在调试器中更改某种类型的表示。
以下是文档:https://lldb.llvm.org/varformats.html。它没有提到Swift,但根据WWDC 2014 Session 410(LLDB中的高级Swift调试,slides),它也适用于Swift对象。
例如,对于类型Foo
:
struct Foo {
let x: Int
}
LLDB命令应该如下:
(lldb) type summary add -s "This is Foo ${var.x}" TheModuleName.Foo
但是,此命令似乎不起作用。对于let foo = Foo(x: 42, y: 3.14)
。我在调试器中得到以下结果:
(lldb) frame variable foo
(TheModuleName.Foo) foo = This is Foo error: summary string parsing error
(lldb) po foo
▿ Foo
- x : 42
所以po
完全没有受到影响,frame variable
抱怨无法解析摘要字符串。
我错过了什么吗?这个功能是否适用于Swift对象?
如果这是相关的,我使用Swift 3.1版与Xcode 8.3.3(目前最新的稳定版本)。