在gdb中格式化“p / t”的输出

时间:2018-05-02 14:51:41

标签: gdb

在gdb中,'p / t'以二进制格式显示变量或寄存器的值。当读取uint16_t或uint32_t寄存器时,很难找到我想要查看的位。有没有一种方法可以更好地格式化输出?例如,将4位数字分组并添加空格,例如“0000 0000 0100 0101”?

2 个答案:

答案 0 :(得分:1)

嗯......我找到了一条路,虽然不是很漂亮。

'x /'显示变量中的值。它有一些有用的格式化选项。

例如,如果要读取存储以下值的32位寄存器。

 (gdb) p /t register_name
 11111111111011111111100010101010

然后,您可以像下面的示例一样逐字节地查看它们。请注意,字节的顺序是相反的。

 (gdb) x/4bt &register_name
 0x40022020:  10101010    11111000    11101111    11111111

答案 1 :(得分:0)

没有内置方法可以做到这一点。这似乎是一个合理的要求(在gdb bugzilla中)。