如何打印%eax和%ebp的值?
(gdb) p $eax
$1 = void
如何打印%eax和%ebp的值?
(gdb) p $eax
$1 = void
当前回答
Info registers显示所有寄存器;信息寄存器eax只显示寄存器eax。该命令可以缩写为i r
其他回答
Info registers显示所有寄存器;信息寄存器eax只显示寄存器eax。该命令可以缩写为i r
还有:
info all-registers
然后你可以得到你感兴趣的寄存器名——这对于找到特定于平台的寄存器非常有用(比如NEON Q…手臂)。
如果只想检查一次,信息寄存器显示寄存器。 如果只想查看一个寄存器,例如在gdb命令行中display $esp continue display esp registers。 如果要观察所有寄存器,布局规则继续显示寄存器,使用TUI模式。
如果试图在GDB中打印特定寄存器,则必须省略%符号。例如,
info registers eip
如果你的可执行文件是64位的,寄存器以r开始。以e开始是无效的。
info registers rip
这些可以缩写为:
i r rip
对我来说最简单的是:
(gdb) x/x $eax
第一个x代表检查,第二个x是十六进制。你可以看到其他格式使用:
(gdb) help x
您可以使用x/s $eax或x/a $ebp+4轻松打印字符串。