【问题标题】:Custom summary for class template (c++)类模板的自定义摘要 (c++)
【发布时间】:2017-10-22 10:03:41
【问题描述】:

在 LLDB 中,可以使用自定义格式。例如有

class Foo { ... };

我可以的

type summary add -T Foo

然后提供带有自定义摘要的 python 脚本。然后有

Foo f;

我可以在 LLDB 中使用自定义格式:

frame variable f

但是如何以通用的方式做呢?有

template<typename T> class Foo { ... };

我可以为具体类型定义摘要,例如

type summary add -P Foo<int> ...
type summary add -P Foo<double> ....

但是所有类型都可以这样做吗? 我想要类似的东西

type summary add -P Foo<T> ...

或者也许有不同的方法来做到这一点。

【问题讨论】:

    标签: c++ lldb


    【解决方案1】:

    由于 DWARF 调试信息仅记录有关单个具体实例的信息,因此 lldb(以及一般的调试器)对抽象模板没有很好的理解。

    目前处理模板类型摘要匹配的方式是使用type summary add的-x选项。这告诉 lldb 将类型名称视为正则表达式。制作正则表达式以匹配模板类型名称并不难。这里有在 llvm 数据类型的类型摘要中使用它的示例:

    http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lldbDataFormatters.py?view=markup

    这在http://lldb.llvm.org/varformats.html 中的REGULAR EXPRESSION TYPENAMES 部分进行了讨论

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多