from gdb.texinfo on 11 July 1994 -->
Go to the previous, next section.
Values printed by the print
command are saved in the GDB value
history so that you can refer to them in other expressions. Values are
kept until the symbol table is re-read or discarded (for example with
the file
or symbol-file
commands). When the symbol table
changes, the value history is discarded, since the values may contain
pointers back to the types defined in the symbol table.
The values printed are given history numbers by which you can
refer to them. These are successive integers starting with one.
print
shows you the history number assigned to a value by
printing `$num = ' before the value; here num is the
history number.
To refer to any previous value, use `$' followed by the value's
history number. The way print
labels its output is designed to
remind you of this. Just $
refers to the most recent value in
the history, and $$
refers to the value before that.
$$n
refers to the nth value from the end; $$2
is the value just prior to $$
, $$1
is equivalent to
$$
, and $$0
is equivalent to $
.
For example, suppose you have just printed a pointer to a structure and want to see the contents of the structure. It suffices to type
p *$
If you have a chain of structures where the component next
points
to the next one, you can print the contents of the next one with this:
p *$.next
You can print successive links in the chain by repeating this command--which you can do by just typing RET.
Note that the history records values, not expressions. If the value of
x
is 4 and you type these commands:
print x set x=5
then the value recorded in the value history by the print
command
remains 4 even though the value of x
has changed.
show values
show
values
does not change the history.
show values n
show values +
Pressing RET to repeat show values n
has exactly the
same effect as `show values +'.
Go to the previous, next section.