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