2013-05-03 54 views
0

我在玩GDBx/<op> $var是查看當前值的命令嗎?我不知道是什麼導致x/d $rbx的值從28變爲-5604的命令順序,因爲我沒有采取任何新的步驟使用stepi或任何東西。任何iea?我在哪裏更改了寄存器變量值?

(gdb) x/s $rbx 
0x7fffffffe718: "\034\352\377\377\377\177" 
(gdb) x/d $rbx 
0x7fffffffe718: 28 
(gdb) x/s $rbx 
0x7fffffffe718: "\034\352\377\377\377\177" 
(gdb) x/1ws $rbx 
0x7fffffffe718: U"\xffffea1c翿" 
(gdb) x/1wd $rbx 
0x7fffffffe718: -5604 

(gdb) x/d $rbx 
0x7fffffffe718: -5604 

(gdb) x/s $rbx 
0x7fffffffe718: "\034\352\377\377\377\177" 
(gdb) x/d $rbx 
0x7fffffffe718: 28 
+2

在我看來像gbd首先設置爲一個字節單位大小(0x1c是十進制28)。然後,當您將其更改爲字(4字節)大小時,它將使用整數值0xffffea1c,即當打印爲帶符號的十進制數時,它的值爲-5604。 – Michael 2013-05-03 09:52:38

回答

0

我不知道是什麼原因造成的x/d $ RBX的值在地址0x7fffffffe718從28更改爲-5604

內存中的值具有改變。

默認情況下,GDB檢查的字節數有所變化。