答案 0 :(得分:1)
它显示每帧中当前点的变量值。
这种方法的工作方式是变量的调试信息包含变量位置的描述。 gdb评估此描述,然后从该位置获取值。现在,这可能很复杂(变量可以在一个位置的寄存器中,在另一个位置的内存中;或者堆栈上的结构可以分解为它们的组成部分;等等) - 但在简单的情况下,这只是一些位置堆。因此,如果赋值变量,则会覆盖旧值。
但是,如果您使用的是足够新的gcc和足够新的gdb,则在某些情况下可以查看函数参数的条目值。条目值可能看起来像var@entry = 72
。这意味着编译器能够告诉调试器如何计算入口值。这通常通过展开一个帧并评估一个DWARF表达式来完成,该表达式说明如何计算给定调用帧中状态的值。