LLDB for Swift:泛型类型的自定义类型摘要

Pal*_*lle 2 lldb swift

使用 LLDB,我可以为类型添加自定义摘要:

(lldb) type summary add -s "This is a Foo" Baz.Foo
Run Code Online (Sandbox Code Playgroud)

但是,对于具有两个或多个泛型的泛型,我无法执行此操作。

给定一个Foo具有两个或多个泛型类型的模块 Baz :

(lldb) type summary add -s "This is a Foo" Baz.Foo
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法;都没有成功:

  • type summary add -s "This is a Foo" Baz.Foo
  • type summary add -s "This is a Foo" Baz.Foo<A, B>
  • type summary add -s "This is a Foo" Baz.Foo<Float, Float>
  • type summary add -s "This is a Foo" Baz.Foo<Bar, Bar2>
  • type summary add -s "This is a Foo" Baz.Foo<Float>

在所有情况下,打印的是标准描述而不是自定义描述。

那么如何为具有两个或多个泛型的泛型添加自定义摘要,理想情况下无需为Barand指定具体类型Bar2

Dav*_*Lee 5

使用--regex/-x标志来模式匹配 Swift 中的泛型类型或 C++ 中的模板类型。

type summary add -s "This is a Foo" -x "^Baz\.Foo<.+,.+>$"
Run Code Online (Sandbox Code Playgroud)

您可以通过运行查看许多示例type summary list -l swift。下面是如何Dictionary显示:

^Swift\.Dictionary<.+,.+>$:  (show children) (hide value) (skip references) Swift.Dictionary summary provider
Run Code Online (Sandbox Code Playgroud)