2016-10-01 31 views
0

我只是试图检查GDB中的内存。比如说,我用“A”填充一个缓冲区,然后我找到我的“A”的起点,然后将这个内存值存储在小数点中。为什么GDB以小数点的方式超出内存?

然后什么奇怪的是我并没有改变任何事情,又试了一次,而 “A” 的出现(0x41414141 ...)

这是GDB显示...

x/ 0xbffff558 
0xbffff558: 1094795585 

为什么会发生这种情况?谢谢。

回答

4

您需要指定如何输出内存中的数据。例如

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个字符串

+0

非常感谢。 – user2342434242

相关问题