在DDD中隐藏静态数据成员,或者只显示某些成员



我的DDD数据显示窗口太拥挤了,因为每个对象都列出了它的静态数据成员以及它的实例数据成员。

是否有一个选项来隐藏这些?

编辑:甚至更好,我可以采取一个数组切片和显示,为每个元素,只有x y和z成员?

您可以为您的代码编写一个漂亮的打印机。

的例子:

namespace Test {
    struct Filter {
        static unsigned a;
        static unsigned b;
        static unsigned c;
        // ,,,
        unsigned x;
        unsigned y;
        unsigned z;
        Filter()
        : x(1), y(2), z(3)
        {}
    };
    unsigned Filter::a;
    unsigned Filter::b;
    unsigned Filter::c;
}
int main() {
    Test::Filter value;
    return 0;
}

用这个漂亮的打印机

@printers.register_pretty_printer
class TestFilter:
    "Pretty Printer for Test::Filter"
    regex = re.compile('^Test::Filter$')
    @printers.static
    def supports(typename):
        return TestFilter.regex.search(typename)
    def __init__(self, typename, value):
        self.typename = typename
        self.value = value
    def to_string(self):
        x = self.value['x']
        y = self.value['y']
        z = self.value['z']
        return '(Test::Filter) x=%d, y=%d, z=%d' % (x, y, z)

在第27行返回并运行gdb -q Test -ex 'b 27' -ex 'r' -ex 'p value' -ex 'c' -ex 'q'会给:

$1 = (Test::Filter) x=1, y=2, z=3

有关进一步的说明,请查看pretty print boost::mpl::string<…>gdb中的类型

相关内容

  • 没有找到相关文章

最新更新