有没有办法让GDB打印机器堆栈上推送的最后一个“n”值。例如,目前如果我想检查堆栈的内容,我会执行以下操作(假设x86架构):
(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)
有没有更好的方法来查看机器堆栈?印刷得很好,也许?
答案 0 :(得分:21)
检查堆栈顶部的16个字:
x/16wx $esp
“w”用于打印单词