调试时在gdb中存储值

时间:2010-12-18 17:12:14

标签: debugging gdb

我正在调试程序并发现自己一直这样做

(gdb) p edges[i]
$9 = (std::pair<int, int> &) @0x7ffff427b790: {first = 26349, second = 25679}
(gdb) p nodes[26349].parent
$10 = 25679

我想做的是像

(gdb) v = edges[i]
(gdb) p nodes[v.first].parent
$11 = 25679

变量v只是edge [i]的简写符号/别名。这样的事情可能吗?

1 个答案:

答案 0 :(得分:3)

想出来。这在gdb中称为便捷变量,具有以下语法:

(gdb) set $v = edges[i]
(gdb) p nodes[$v.first].parent
$11 = 25679

读取$11 = 25679存储的行也将最后一个值存储在便利变量中,因此您可以执行p $11。漂亮的