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



我只是想检查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个字符串

最新更新