在gdb中,'p / t'以二进制格式显示变量或寄存器的值。当读取uint16_t或uint32_t寄存器时,很难找到我想要查看的位。有没有一种方法可以更好地格式化输出?例如,将4位数字分组并添加空格,例如“0000 0000 0100 0101”?
答案 0 :(得分:1)
嗯......我找到了一条路,虽然不是很漂亮。
'x /'显示变量中的值。它有一些有用的格式化选项。
例如,如果要读取存储以下值的32位寄存器。
(gdb) p /t register_name
11111111111011111111100010101010
然后,您可以像下面的示例一样逐字节地查看它们。请注意,字节的顺序是相反的。
(gdb) x/4bt ®ister_name
0x40022020: 10101010 11111000 11101111 11111111
答案 1 :(得分:0)
没有内置方法可以做到这一点。这似乎是一个合理的要求(在gdb bugzilla中)。