GDB - 从堆栈中读取1个单词

时间:2017-07-27 18:25:10

标签: gdb

我想以十六进制的形式从堆栈顶部打印1个单词。为此,我键入以下内容:

(gdb) x/1xw $esp

但GDB不断涌现:

0xffffffffffffe030: Cannot access memory at address 0xffffffffffffe030

我正在尝试调试的程序已经将一个值推送到堆栈上,以防万一你想知道我可能在程序的最开始时尝试访问内核变量,但事实并非如此。 任何的想法?

1 个答案:

答案 0 :(得分:2)

a是一个64位常量,因此您在x64位模式下运行。但0xffffffffffffe030是一个32位寄存器(在此上下文中GDB符号扩展为64位)。 64位堆栈指针称为$esp。试试这个:

$rsp