我只是想检查gdb中的内存。例如,假设我用“a”填充一个缓冲区,然后找到“a”的起始位置,然后将该内存值以小数形式转储到内存中。
奇怪的是我什么也没改变,再试了一次,然后“A”出现了(0x41414141…)
这就是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个字符串

10-08 18:29