2010-10-25 61 views
11

有什麼辦法讓GDB打印機器堆棧上的最後n個值。例如,目前如果我想檢查堆棧我做的內容如下(假設x86架構):使用GDB檢查機器堆棧

(gdb) # get last value pushed on stack 
(gdb) p *(int *)($esp) 
(gdb) # get 2nd to last value pushed on stack 
(gdb) p *(int *)($esp + 4) 

有沒有更好的方式來查看機器棧?打印很好,也許?

回答

21

檢查上堆疊的頂部16個字:

x/16wx $esp 

的 「w」 是用於打印字