GDB/C ++ - Как скрыть постоянные статические поля при обратной передаче?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 GDB/C ++ - Как скрыть постоянные статические поля при обратной передаче?

Сообщение Anonymous »

Я отлаживаю код C ++ с GDB. Что -то бросает шаткий, поэтому я ударил «Full Backtrace», чтобы осмотреть. К сожалению, некоторые из переменных членов являются экземплярами класса, которые содержат постоянные поля . Есть много полей Const static . Кроме того, эти постоянные поля сами являются экземплярами указанного класса:

Код: Выделить всё

class foo {
public:
int val;
foo(int _val) : val(_val) {}

static const foo FOO_5 = foo(5);
static const foo FOO_6 = foo(6);
static const foo FOO_7 = foo(7);
...
}
< /code>
(мой реальный код представляет собой класс форматирования шрифта с пресетами для жирного шрифта, курсива, черного, красного и т. Д.) < /p>
Результатом является GDB чувство Необходимо выплюнуть каждое постоянное статическое поля 
каждого члена указанного класса (и каждого члена каждого члена Мемора и т. Д.). Это приводит к многим экранам, полным одинаковых отображаемых полей Const static :
Стена текста GDB:

Код: Выделить всё

 mItems = std::vector of length 0, capacity 0, activeFormat = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377',
a = 255 '\377', format = 0 '\000', flags = 0 '\000', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377',
a = 255 '\377', format = 1 '\001', flags = 0 '\000', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = , static italic = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377',
a = 255 '\377', format = 2 '\002', flags = 0 '\000', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = ,
static italic = , static underline = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377',
a = 255 '\377', format = 4 '\004', flags = 0 '\000', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = ,
static italic = ,
static underline = , static strikethrough = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377',
a = 255 '\377', format = 8 '\b', flags = 0 '\000', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = ,
static italic = ,
static underline = ,
static strikethrough = , static red = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 0 '\000', b = 0 '\000',
a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = ,
static italic = ,
static underline = ,
static strikethrough = ,
static red = , static green = {
_vptr.sttfont_format = 0x555555590898 , r = 0 '\000', g = 255 '\377', b = 0 '\000',
a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004',
static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',
static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = ,
static italic = ,
static underline = ,
static strikethrough = ,
static red = ,
static green = , static blue = {
_vptr.sttfont_format = 0x555555590898 , r = 0 '\000', g = 0 '\000',
b = 255 '\377', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000",
static FORMAT_NONE = 0 '\000', static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002',
static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b',
static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = ,
static italic = ,
static underline = ,
static strikethrough = ,
static red = ,
static green = ,
static blue = , static yellow = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377',
b = 0 '\000', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000",
static FORMAT_NONE = 0 '\000', static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002',
static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b',
static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = ,
static italic = ,
static underline = ,
static strikethrough = ,
static red = ,
--Type   for more, q to quit, c to continue without paging--
y seen type>, static blue = , static yellow = , static black = {
_vptr.sttfont_format = 0x555555590898 , r = 0 '\000', g = 0 '\000', b = 0 '\000', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000', static FORMAT_BOLD = 1 '\001',
static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = , static italic = , static underline = ,
static strikethrough = , static red = , static green = ,
static blue = , static yellow = , static black = , static white = {
_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 255 '\377', b = 255 '\377', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = , static italic = , static underline = ,
static strikethrough = , static red = , static green = ,
static blue = , static yellow = , static black = ,
static white = , static magenta = {_vptr.sttfont_format = 0x555555590898 , r = 255 '\377', g = 0 '\000', b = 255 '\377', a = 255 '\377', format = 0 '\000',
flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000', static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b',
static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001', static bold = , static italic = ,
static underline = , static strikethrough = , static red = ,
static green = , static blue = , static yellow = ,
static black = , static white = , static magenta = , static cyan = {
_vptr.sttfont_format = 0x555555590898 , r = 0 '\000', g = 255 '\377', b = 255 '\377', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200',  static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = , static italic = , static underline = ,
static strikethrough = , static red = , static green = ,
static blue = , static yellow = , static black = ,
static white = , static magenta = , static cyan = , static grey = {
_vptr.sttfont_format = 0x555555590898 , r = 128 '\200', g = 128 '\200', b = 128 '\200', a = 255 '\377', format = 0 '\000', flags = 1 '\001', padding = "\000", static FORMAT_NONE = 0 '\000',
static FORMAT_BOLD = 1 '\001', static FORMAT_ITALIC = 2 '\002', static FORMAT_UNDERLINE = 4 '\004', static FORMAT_STRIKETHROUGH = 8 '\b', static FORMAT_RENDER_EVEN_IF_CALLBACK_EXISTS = 128 '\200', static FORMAT_FLAGS_COLOUR_SET = 1 '\001',
static bold = , static italic = , static underline = ,
static strikethrough = , static red = , static green = ,
static blue = , static yellow = , static black = ,
static white = , static magenta = , static cyan = ,
static grey = , static reset = {}}, static reset = }, static grey = ,
static reset = }, static cyan = , static grey = ,
static reset = }, static magenta = , static cyan = ,
static grey = , static reset = }, static white = ,
static magenta = , static cyan = , static grey = ,
static reset = }, static black = , static white = ,
static magenta = , static cyan = , static grey = ,
static reset = }, static yellow = , static black = ,
static white = , static magenta = , static cyan = , static grey = ,
static reset = }, static blue = , static yellow = , static black = ,
static white = , static magenta = , static cyan = , static grey = ,
static reset = }, static green = , static blue = , static yellow = ,
static black = , static white = , static magenta = , static cyan = ,
static grey = , static reset = }, static red = , static green = ,
static blue = , static yellow = , static black = , static white = ,
static magenta = , static cyan = , static grey = , static reset = },
static strikethrough = , static red = , static green = , static blue = ,
static yellow = , static black = , static white = , static magenta = ,
static cyan = , static grey = , static reset = }, static underline = ,
static strikethrough = , static red = , static green = , static blue = ,
static yellow = , static black = , static white = , static magenta = ,
static cyan = , static grey = , static reset = }, static italic = ,
static underline = , static strikethrough = , static red = , static green = ,
static blue = , static yellow = , static black = , static white = ,
static magenta = , static cyan = , static grey = , static reset = }}

Мой вопрос прост: Как мне подавить константные статические полки из команды Backtrace GDB Full ? или даже просто удалить все статические поля. Ура!

Подробнее здесь: https://stackoverflow.com/questions/651 ... acktracing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»