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