2010-10-25 73 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” 是用于打印字