0
我只是试图检查GDB中的内存。比如说,我用“A”填充一个缓冲区,然后我找到我的“A”的起点,然后将这个内存值存储在小数点中。为什么GDB以小数点的方式超出内存?
然后什么奇怪的是我并没有改变任何事情,又试了一次,而 “A” 的出现(0x41414141 ...)
这是GDB显示...
x/ 0xbffff558
0xbffff558: 1094795585
为什么会发生这种情况?谢谢。
我只是试图检查GDB中的内存。比如说,我用“A”填充一个缓冲区,然后我找到我的“A”的起点,然后将这个内存值存储在小数点中。为什么GDB以小数点的方式超出内存?
然后什么奇怪的是我并没有改变任何事情,又试了一次,而 “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个字符串
非常感谢。 – user2342434242