gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:23:33 27 4
gpt4 key购买 nike

我正在尝试获取宽度为 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

或者:

(gdb) p/f *(0x81000000)@16
$27 = {0, 0, 1, 0, 2, 0, 3, 0,
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] for a在范围内(s,s+32,4))对于s在范围内(0x81000000,0x81000040,32))

关于gdb - 如何设置GDB内存检查(x)或打印(p)命令的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com