10.7 Automatic Display
If you find that you want to print the value of an expression frequently
(to see how it changes), you might want to add it to the automatic
display list so that gdb prints its value each time your program stops.
Each expression added to the list is given a number to identify it;
to remove an expression from the list, you specify that number.
The automatic display looks like this:
2: foo = 38
3: bar = (struct hack *) 0x3804
This display shows item numbers, expressions and their current values. As with
displays you request manually using
print, you can
specify the output format you prefer; in fact,
whether to use
x depending your format
x if you specify either the ‘i’
or ‘s’ format, or a unit size; otherwise it uses
- Add the expression expr to the list of expressions to display
each time your program stops. See Expressions.
display does not repeat if you press <RET> again after using it.
- For fmt specifying only a display format and not a size or
count, add the expression expr to the auto-display list but
arrange to display it each time in the specified format fmt.
See Output Formats.
- For fmt ‘i’ or ‘s’, or including a unit-size or a
number of units, add the expression addr as a memory address to
be examined each time your program stops. Examining means in effect
doing ‘x/fmt addr’. See Examining Memory.
For example, ‘display/i $pc’ can be helpful, to see the machine
instruction about to be executed each time execution stops (‘$pc’
is a common name for the program counter; see Registers).
delete display dnums
- Remove items from the list of expressions to display. Specify the
numbers of the displays that you want affected with the command
argument dnums. It can be a single display number, one of the
numbers shown in the first field of the ‘info display’ display;
or it could be a range of display numbers, as in
undisplay does not repeat if you press <RET> after using it.
(Otherwise you would just get the error ‘No display number ...’.)
disable display dnums
- Disable the display of item numbers dnums. A disabled display
item is not printed automatically, but is not forgotten. It may be
enabled again later. Specify the numbers of the displays that you
want affected with the command argument dnums. It can be a
single display number, one of the numbers shown in the first field of
the ‘info display’ display; or it could be a range of display
numbers, as in
enable display dnums
- Enable display of item numbers dnums. It becomes effective once
again in auto display of its expression, until you specify otherwise.
Specify the numbers of the displays that you want affected with the
command argument dnums. It can be a single display number, one
of the numbers shown in the first field of the ‘info display’
display; or it could be a range of display numbers, as in
- Display the current values of the expressions on the list, just as is
done when your program stops.
- Print the list of expressions previously set up to display
automatically, each one with its item number, but without showing the
values. This includes disabled expressions, which are marked as such.
It also includes expressions which would not be displayed right now
because they refer to automatic variables not currently available.
If a display expression refers to local variables, then it does not make
sense outside the lexical context for which it was set up. Such an
expression is disabled when execution enters a context where one of its
variables is not defined. For example, if you give the command
display last_char while inside a function with an argument
last_char, gdb displays this argument while your program
continues to stop inside that function. When it stops elsewhere—where
there is no variable
last_char—the display is disabled
automatically. The next time your program stops where
is meaningful, you can enable the display expression once again.