在gdb中打印整个链表?

Tim*_*ung 12 c++ debugging ubuntu gdb data-structures

我有一个链表

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;
Run Code Online (Sandbox Code Playgroud)

有了这个结构,就说我定义了一个列表

list_t* myList;
Run Code Online (Sandbox Code Playgroud)

如何使用GDB打印整个链表?

Emp*_*ian 12

这应该工作(但未经测试):

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

(gdb) plist myList
Run Code Online (Sandbox Code Playgroud)

你可以把plist~/.gdbinit