我的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中的类型