HP gnu source-level debugger 5992-4701 User Manual

Page 97

Advertising
background image

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 98)

). (Value history references, in contrast, are numbers

preceded by '$'. See

“Value history” (page 95)

.)

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 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 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

97

Advertising