2009-04-28 89 views
1

“以$开头的名称指的是寄存器(如果程序要返回到现在选择的堆栈帧,将返回 , )或调试器 “便利”变量(任何这样的名称都不是已知的寄存器) 使用赋值表达式为便捷变量赋值。有人可以帮助解释gdb中的打印命令:

上面的行来自gdb的帮助打印。 有人可以请解释以上线路,特别是哪些寄存器在这里被引用? 谢谢。

回答

2

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

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

十六进制程序计数器可以得到什么寄存器可供您

info registers 

info all-registers 

,然后附加信息的详细信息在一个特定的寄存器上

info registers register_name 

希望这有助于!

1

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

+0

自动变量被存储,所以自动变量也存储在寄存器的运行时间。有寄存器变量以及自动变量和寄存器变量之间的区别是什么,如果自动变量也存储在寄存器.. ....? – mawia 2009-04-28 22:25:04

相关问题