4

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

有没有隐藏这些的选项?

编辑:更好的是,我可以为每个元素获取一个数组切片并仅显示 xy 和 z 成员吗?

4

1 回答 1

0

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

例子:

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

有关更多说明,请查看gdb 中漂亮的打印 boost::mpl::string<...> 类型

于 2013-12-03T19:56:00.613 回答