Сброс структуры с помощью dbx

Я отлаживаю свою программу на C, используя dbx в Solaris, и я хотел бы видеть содержимое структуры данных.

Это локальная структура данных в функции, которая находится в области видимости, поэтому ввод «dump» показывает указатель на структуру. Однако я хотел бы посмотреть на содержимое различных полей внутри него. Как я могу это сделать?


person thomson_matt    schedule 20.06.2011    source источник


Ответы (2)


Как правило, команда «печать» предлагает наилучшие функциональные возможности для такого рода вещей. Если ваша локальная переменная-указатель называется «p», используйте «print *p». Аргументом для печати может быть любое языковое выражение, например "print p->buf" или "print p->buf[3]"

person Chris Quenelle    schedule 20.06.2011
comment
Легко, когда знаешь как. Спасибо! - person thomson_matt; 21.06.2011

Предполагая, что ваша переменная указателя структуры называется struct_ptr, это работает?

dump *struct_ptr
person Jonathan Leffler    schedule 20.06.2011
comment
Как это работает, представляет собой смесь обоих ответов. Если вам нужен адрес указателя, напечатайте my_struct. Если вам нужны данные члена, напечатайте my_struct -> member. Если вы хотите вывести все элементы структуры и адреса, напечатайте *my_struct - person Gull_Code; 12.12.2013