如何设置GDB内存检查(x)或打印(p)命令的宽度?

如何设置GDB内存检查(x)或打印(p)命令的宽度?,gdb,Gdb,我正试图得到一个长2D数组的格式化打印,宽度为8,浮点数。使用x命令时,我将数组打印为四列表: (gdb) x/16f 0x81000000 0x81000000: 0 0 1 0 0x81000010: 2 0 3 0 0x81000020: 4 0 5 0 0x81000030: 6 0 7 0 当使用p命令时,我得到一个未格式化的输出,即终端的宽度: (gdb) p/f *(0x81000000)@16 $27 = {0, 0, 1, 0,

我正试图得到一个长2D数组的格式化打印,宽度为8,浮点数。使用
x
命令时,我将数组打印为四列表:

(gdb) x/16f 0x81000000
0x81000000: 0   0   1   0
0x81000010: 2   0   3   0
0x81000020: 4   0   5   0
0x81000030: 6   0   7   0
当使用
p
命令时,我得到一个未格式化的输出,即终端的宽度:

(gdb) p/f *(0x81000000)@16
$27 = {0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0}
所需的输出,类似于:

(gdb) x/16f 0x81000000
0x81000000: 0   0   1   0   2   0   3   0
0x81000020: 4   0   5   0   6   0   7   0
或:

是否有一种简单的方法来格式化特定宽度的输出?使用python脚本:

我认为这是非常接近的,如果相当模糊的话:


python print“\n”.join(“,”.join(gdb.execute('x/f 0x%x'%a,False,True)。split()[-1]用于范围内的(s,s+32,4)),用于范围内的(0x81000000,0x81000040,32))

谢谢。我对Python完全不熟悉。我应该在gdb提示符中输入这个吗?
(gdb) p/f *(0x81000000)@16
$27 = {0, 0, 1, 0, 2, 0, 3, 0,
       4, 0, 5, 0, 6, 0, 7, 0}