gdb检查和打印给出不同的值

时间:2018-01-21 02:35:40

标签: c debugging memory gdb

我正在检查gdb中的内存,并注意到printexamine为同一位置提供了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

1 个答案:

答案 0 :(得分:1)

" p"命令可能会隐含地假设一个机器字,但是" x"记得你用过它的最后一个尺寸,这似乎是一个角色。要告诉它再次使用4字节字,您可以使用" x / wd",例如。