Debugging with GDB (September 2007)
258 Debugging with GDB
The server prefix does not affect the recording of values into the value history; to print
a value without recording it into the value history, use the output command instead of the
print command.
20.3 Values
When a value is printed in various contexts, GDB uses annotations to delimit the value
from the surrounding text.
If a value is printed using print and added to the value history, the annotation looks
like
^Z^Zvalue-history-begin history-number value-flags
history-string
^Z^Zvalue-history-value
the-value
^Z^Zvalue-history-end
where history-number is the number it is getting in the value history, history-string is
a string, such as ‘$5 = ’, which introduces the value to the user, the-value is the output
corresponding to the value itself, and value-flags is ‘*’ for a value which can be dereferenced
and ‘-’ for a value which cannot.
If the value is not added to the value history (it is an invalid float or it is printed with
the output command), the annotation is similar:
^Z^Zvalue-begin value-flags
the-value
^Z^Zvalue-end
When GDB prints an argument to a function (for example, in the output from the
backtrace command), it annotates it as follows:
^Z^Zarg-begin
argument-name
^Z^Zarg-name-end
separator-string
^Z^Zarg-value value-flags
the-value
^Z^Zarg-end
where argument-name is the name of the argument, separator-string is text which sep-
arates the name from the value for the user’s benefit (such as ‘=’), and value-flags and
the-value have the same meanings as in a value-history-begin annotation.
When printing a structure, GDB annotates it as follows:
^Z^Zfield-begin value-flags
field-name
^Z^Zfield-name-end
separator-string
^Z^Zfield-value
the-value
^Z^Zfield-end
where field-name is the name of the field, separator-string is text which separates the
name from the value for the user’s benefit (such as ‘=’), and value-flags and the-value have
the same meanings as in a value-history-begin annotation.
When printing an array, GDB annotates it as follows: