Подтвердить что ты не робот

Печать всего связанного списка в gdb?

У меня есть связанный список

struct node {
    data_t data;
    node_t *next;
};

typedef struct {
    node_t *head;
    node_t *foot;
    node_t *curr;   // for iterator
    unsigned int size;
} list_t;

с этой структурой, скажем, Я определил список

list_t* myList;

Как я могу использовать GDB для печати всего связанного списка?

4b9b3361

Ответ 1

Это должно работать (но не проверено):

define plist
  set var $n = $arg0->head
  while $n
    printf "%d ", $n->data
    set var $n = $n->next
  end
end

(gdb) plist myList

Вы можете положить plist в ~/.gdbinit

Ответ 2

GDB доступен для сценариев в Python. Вы можете определить свои собственные принтеры и делать другие полезные вещи.

Еще лучше, используйте стандартный контейнер, теперь GDB поддерживает печать изначально.