The Value History
Every time you print a value with print, GDB saves the value in the
value history . You can reference these saved values by their
numeric place in the history, preceded with a $. GDB reminds you of this by printing
$ n
= val.
For example:
$gdb whizprog... (gdb)print stopped_early$1 = 0 (gdb)print whiny_users$2 = TRUE (gdb)
A plain $ refers to the
most recent value in the value history. This can save considerable
typing. If you’ve just looked at a pointer variable, you can
use:
(gdb) print *$to print the contents of whatever the pointer is pointing to.
$$ refers to the next most recent
value in the history, and $$
n refers to the value
n places from the end. (Thus, $ n counts from
the beginning, while $$
n counts from the end.)
You can use show values to
see the values in the history. Whenever GDB reloads the executable
(rereads the symbol table), it clears the value history. This is
because the value history may have contained pointers into the
symbol table and such pointers become invalid when the symbol table
is reloaded.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access