我正在检查gdb中的内存,并注意到print
和examine
为同一位置提供了2个不同的值。
(gdb) x/d $ebp-0x1c
0xffffd10c: 126
(gdb) p *0xffffd10c
$1 = 382
为什么会这样?
UPD:
正如答案中所指出的,这可能是因为我没有明确指定要打印的尺寸。我试图指明,并且我也得到了类似的结果:
(gdb) p/x *0xffffd110
$5: 0x9c9
(gdb) x/x $ebp-0x18
0xffffd110: 0xc9
答案 0 :(得分:1)
" p"命令可能会隐含地假设一个机器字,但是" x"记得你用过它的最后一个尺寸,这似乎是一个角色。要告诉它再次使用4字节字,您可以使用" x / wd",例如。