请问如何用GDB输出结构体中的内容?

比如有以下的程序#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstructnode*link;s... 比如有以下的程序

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct node *link;
struct node {
int v;
int len;
link next;
};

typedef struct graph *Graph;
struct graph {
int V;
int E;
link *adj;
};

typedef struct edge Edge;
struct edge {
int v;
int w;
int len;
};

Graph graph_init(int v)
{
int i;
Graph t = malloc(sizeof *t);

t->V = v;
t->E = 0;
t->adj = malloc(sizeof(v * sizeof(link)));
for (i = 0; i < v; i++) {
t->adj[i] = NULL;
}

return t;
}

link NEW(int v, link next, int len)
{
link t = malloc(sizeof *t);

t->v = v;
t->next = next;
t->len = len;

return t;
}

Edge EDGE(int v, int w, int len)
{
Edge tmp;

tmp.v = v;
tmp.w = w;
tmp.len = len;

return tmp;
}

void graph_insert(Graph G, Edge e)
{
int v = e.v;
int w = e.w;
int len = e.len;

G->adj[v] = NEW(w, G->adj[v], len);
G->adj[w] = NEW(v, G->adj[w], len);
G->E++;
}

void graph_print(Graph G)
{
int i;
link tmp;

for (i = 0; i < G->V; i++) {
printf("%d:", i);
for (tmp = G->adj[i]; tmp->next != NULL; tmp = tmp->next) {
printf("%d %d\t", tmp->v, tmp->len);
}
printf("\n");
}
}

int main(void)
{
Graph G;
int i;
int v, w, len;

G = graph_init(5);
for (i = 0; i < 5; i++) {
scanf("%d%d%d", &v, &w, &len);
graph_insert(G, EDGE(v, w, len));
}

graph_print(G);

return 0;
}

我想在用GDB调试的时候观察整个G中的内容,就是怎样用GDB查看连续链表中的内容?
展开
 我来答
zyp
2011-04-13 · 程序员
zyp
程序员
采纳数:11 获赞数:15
java程序员

向TA提问 私信TA
展开全部
这个要自己写gdb脚本,gdb用户手册23 Extending gdb这一章!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式