Linux 为什么GDB以小数形式输出内存?

Linux 为什么GDB以小数形式输出内存?,linux,debugging,gdb,exploit,Linux,Debugging,Gdb,Exploit,我只是想检查GDB中的内存。例如,假设我用“a”填充一个缓冲区,然后我找到“a”的起始位置,然后将内存值转储到内存中,显然是小数 然后奇怪的是我没有改变任何东西,再试一次,然后出现了“a”(0x4141…) 这就是GDB所展示的 x/ 0xbffff558 0xbffff558: 1094795585 为什么会发生这种情况?谢谢。您需要指定内存中数据的输出方式。比如说 x/x 0xbffff558将以十六进制输出该内存 x/i 0xbffff558将该内存作为指令输出 x/s 0xbffff5

我只是想检查GDB中的内存。例如,假设我用“a”填充一个缓冲区,然后我找到“a”的起始位置,然后将内存值转储到内存中,显然是小数

然后奇怪的是我没有改变任何东西,再试一次,然后出现了“a”(0x4141…)

这就是GDB所展示的

x/ 0xbffff558
0xbffff558: 1094795585

为什么会发生这种情况?谢谢。

您需要指定内存中数据的输出方式。比如说

x/x 0xbffff558
将以十六进制输出该内存
x/i 0xbffff558
将该内存作为指令输出
x/s 0xbffff558
将以字符串形式输出该内存

此外,还可以指定要输出的内容的大小

x/10bx 0xbffff558
将以十六进制输出10个字节
x/10wx 0xbffff558
将以十六进制输出10个字(每个字4个字节)
x/20i 0xbffff558
将输出20条指令
x/2s 0xbffff558
将输出2个字符串

您需要指定内存中数据的输出方式。比如说

x/x 0xbffff558
将以十六进制输出该内存
x/i 0xbffff558
将该内存作为指令输出
x/s 0xbffff558
将以字符串形式输出该内存

此外,还可以指定要输出的内容的大小

x/10bx 0xbffff558
将以十六进制输出10个字节
x/10wx 0xbffff558
将以十六进制输出10个字(每个字4个字节)
x/20i 0xbffff558
将输出20条指令
x/2s 0xbffff558
将输出两个字符串

非常感谢。非常感谢。