在
为什么要在gdb中这样做?我认为它应该总是打印它们,如下所示:
gdb
中,有时会以左向右和右向左的方式打印字节,这让我感到有些困惑。以下是一个示例,在其中没有运行任何指令:>>> x/4b $rbp-4
0x7fffffffe43c: 0x04 0x00 0x03 0x16
>>> x/2h $rbp-4
0x7fffffffe43c: 0x0004 0x1603
为什么要在gdb中这样做?我认为它应该总是打印它们,如下所示:
04 00 03 16
00 04
的形式存储,当需要正确解释2个字节时,它不需要再次进行“翻转”吗? - samuelbrody124900 04
的大端解释是0x0004
。对于 GDB 在小端主机上运行时获取该值,它必须在将其提供给其正常的十六进制打印函数之前对该值进行字节交换。GDB 打印你告诉它的任何宽度的整数,而不是单独的字节。 - Peter Cordes