Мое окно отображения данных 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
Для дальнейших инструкций взгляните на красивая печать Boost :: mpl :: string<…> вводит в GDB
Других решений пока нет …