python - 用于引用的 LLDB 数据格式化程序

标签 python c++ xcode lldb

我目前正在为我自己的类型开发数据格式化程序。但是,我在打印引用文献时遇到了一些问题。

#include <iostream>

class Circle
{
  protected:
    double R;
    double a;
    double b;

  public:
    Circle():R(1), a(0), b(0)
    {
    }
};

int main()
{
  Circle A;
  Circle & B = A;

  return 0;
}

我使用type summary add 来自定义我自己的数据格式化程序

(lldb) type summary add -s "The circle is (R = ${var.R}, a = ${var.a}, b = ${var.b})" Circle

现在它对于非引用非常好,例如

(lldb) frame variable A
(Circle) A = The circle is (R = 1, a = 0, b = 0)

但是,作为引用,

(lldb) frame variable B
(Circle &const) B = 0x00007fffffffd200 The circle is (R = 1, a = 0, b = 0): {
  R = 1
  a = 0
  b = 0
}

不需要“:”后的内容。

如何处理引用?我知道可以使用 --skip-references 来禁用引用的输出,但我确实希望我可以像通常的类型一样格式化引用。

最佳答案

这是一个错误。摘要格式化程序有一个选项:--expand 应该控制我们是只显示摘要,还是显示摘要和正在打印的值的子项。如果在添加摘要时添加 --expand,您将看到结构版本现在也打印子元素。看起来该设置被引用忽略了。

请向 bugs.llvm.org 提交错误

关于python - 用于引用的 LLDB 数据格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738074/

相关文章:

c++ - 初始化多维数组时遇到问题

python - 通过为 Azure 云存储编写的自定义存储设置 Django Imagefield 模型属性的 url

c++ - 为什么 std::strlen() 在不终止空字符的情况下处理 char 数组?这是编译器优化吗?

c++ - decltype(some_vector)::size_type 不能用作模板参数

ios - 如何使用 Xcode 和 Swift 在我的导航栏中添加标题?

objective-c - 错误 : Expected ; at end of declaration list - Class not recognized as type

python - 无法遍历字符串列表

python - plotly 等值线在达到一定值后被切断

python - 如何将 Flask 登录与 Dash 应用程序合并?

c# - xCode增量重置为0