Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)

then the value recorded in the value history by the print command remains 4 even though the
value of x has changed.
show values Print the last ten values in the value history, with their item numbers. This is
like 'p $$9' repeated ten times, except that show values does not change
the history.
show values n Print ten history values centered on history item number n.
show values + Print ten history values following the values last printed. If no more values
are available, show values + produces no display.
Pressing RET to repeat show values n has exactly the same effect as 'show values +'.
8.9 Convenience variables
GDB provides convenience variables that you can use within GDB to hold on to a value and refer
to it later. These variables exist entirely within GDB. They are not part of your program, and setting
a convenience variable has no direct effect on further execution of your program. That is why you
can use them freely.
Convenience variables are prefixed with '$'. Any name preceded by '$' can be used for a
convenience variable, unless it is one of the predefined machine-specific register names (see
“Registers” (page 74)). (Value history references, in contrast, are numbers preceded by '$'. See
“Value history” (page 72).)
You can save a value in a convenience variable with an assignment expression, just as you would
set a variable in your program. For example:
set $foo = *object_ptr
would save in $foo the value contained in the object pointed to by object_ptr.
Using a convenience variable for the first time creates it, but its value is void until you assign a
new value. You can alter the value with another assignment at any time.
Convenience variables have no fixed types. You can assign a convenience variable any type of
value, including structures and arrays, even if that variable already has a value of a different type.
The convenience variable, when used as an expression, has the type of its current value.
show convenience Print a list of convenience variables used so far, and their values.
Abbreviated show conv.
A convenient variable can be used as a counter to be incremented or a pointer to be advanced.
For example, to print a field from successive elements of an array of structures:
set $i = 0
print bar[$i++]->contents
Repeat that command by typing RET.
Some convenience variables are created automatically by GDB and assigned values.
$_ The variable $_ is automatically set by the x command to the last address
examined (see “Examining memory” (page 66)). Other commands which provide
a default address for x to examine, also set $_ to that address. These commands
include info line and info breakpoint. The type of $_ is void * except
when set by the x command, in which case it is a pointer to the type of $__.
$__ The variable $__ is automatically set by the x command to the value found in
the last address examined. Its type is chosen to match the format in which the
data was printed.
$_exitcode The variable $_exitcode is automatically set to the exit code when the program
being debugged terminates.
On HP-UX systems, if you refer to a function or variable name that begins with a dollar sign, GDB
searches for a user or system name first, before it searches for a convenience variable.
8.9 Convenience variables 73