Convenience variables are prefixed with '$'. Any name preceded by '$' can be used for a convenience variable, unless it is one of the predefined
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
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 87)). 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
8.9 Convenience variables | 97 |