假设我有一个指针数组:
struct S {int x;};
S *arr[3] = {new S{1}, new S{2}, new S{3}};
我想取消引用并打印数组的每个元素gdb
。
打印一个元素很简单:
(gdb) p *arr[0]
$1 = {x = 1}
但我想以这种方式打印数组中的每个元素。
我尝试了p arr
,但它输出指针,而不是它们指向的对象:
(gdb) p arr
$1 = {0x613c20, 0x613c40, 0x613c60}
我没有找到比这更好的:
(gdb) set $i=0
(gdb) p *arr[$i++]
$102 = {x = 1}
(gdb)
$103 = {x = 2}
(gdb)
$104 = {x = 3}
(gdb)
也许它可以提供帮助。
注意:只需按return
即可显示下一个值。