By default, gdb prints a value according to its data type. Sometimes this is not what you want. For example, you might want to print a number in hex, or a pointer in decimal. Or you might want to view data in memory at a certain address as a character string or as an instruction. To do these things, specify an output format when you print a value.
The simplest use of output formats is to say how to print a value
already computed. This is done by starting the arguments of the
print command with a slash and a format letter. The format
letters supported are:
xduota (gdb) p/a 0x54320
$3 = 0x54320 <_initialize_vx+396>
The command info symbol 0x54320 yields similar results.
See info symbol.
cWithout this format, gdb displays char,
unsigned char, and signed char data as character
constants. Single-byte members of vectors are displayed as integer
data.
fsWithout this format, gdb displays pointers to and arrays of
char, unsigned char, and signed char as
strings. Single-byte members of a vector are displayed as an integer
array.
For example, to print the program counter in hex (see Registers), type
p/x $pc
Note that no space is required before the slash; this is because command names in gdb cannot contain a slash.
To reprint the last value in the value history with a different format,
you can use the print command with just a format and no
expression. For example, ‘p/x’ reprints the last value in hex.
[1] ‘b’ cannot be used because these format letters are also
used with the x command, where ‘b’ stands for “byte”;
see Examining Memory.