2015-08-28 80 views
0

enter image description here

嗨,

我在VMware上運行Ubuntu的,當我嘗試在$ ESP訪問內存,I得到如下面的屏幕截圖所示的錯誤。我嘗試了谷歌搜索的答案,但其中大部分都太複雜了。

有什麼配置我需要做這個工作?

我試過在我的實際Windows機器上運行gdb,它沒有這個問題。

謝謝。

+3

由於$ esp是整個堆棧指針的低32位,你認爲用64位的時候,你真的很想看看** $ rsp **指向的內容嗎? –

回答

3

你想要$rsp,而不是$esp

通過使用$esp,您得到了符號擴展的32位截斷值$rsp,它指向了neverland。

注意:GDB提供$sp僞寄存器,該寄存器自動映射到給定平臺的正確堆棧指針寄存器。

(gdb) p $rsp 
$1 = (void *) 0x7fffffffe178 
(gdb) p $sp 
$2 = (void *) 0x7fffffffe178 
(gdb) p $esp 
$3 = -7816 
(gdb) p/x $esp 
$4 = 0xffffe178 
+0

啊,我明白了!謝謝! –