有人可以帮助解释gdb中的print命令

时间:2009-04-28 21:42:05

标签: c

“以$开头的名称引用寄存器(具有它们将具有的值) 如果程序返回到现在选择的堆栈帧,则恢复 所有寄存器都由帧进一步保存)或者调试器 “便利”变量(任何此类名称不是已知的寄存器)。 使用赋值表达式为便捷变量赋值。“

以上行来自gdb中的帮助打印。 有人可以解释一下上面的行。特别是哪个寄存器在这里被引用? 感谢。

2 个答案:

答案 0 :(得分:2)

因此,根据手册页,print是“显示表达式的值”。因此,这些将讨论CPU在当前断点处的寄存器值。这是关于调试寄存器值的一些detailed information

  

GDB在大多数机器上都有四个“标准”寄存器名称(在表达式中) - 只要它们不与架构的寄存器规范助记符冲突。寄存器名称$ pc和$ sp用于程序计数器寄存器和堆栈指针。 $ fp用于包含指向当前堆栈帧的指针的寄存器,$ ps用于包含处理器状态的寄存器。例如,您可以使用

以十六进制打印程序计数器

您可以通过

获取有关可用寄存器的更多信息
info registers

info all-registers

然后使用

了解特定寄存器的其他信息
info registers register_name

希望这有帮助!

答案 1 :(得分:1)

指的是CPU寄存器。例如,EAX,ECX,ESP,EIP ......