f78
Registers
GDB has four “standard” register names that are available (in expressions) on
most machines—whenever they do not conflict with an architecture’s canonical
mnemonics for registers. The register names
Whenever possible, these four standard register names are available on your
machine even though the machine has different canonical mnemonics, so long as
there is no conflict. The
GDB always considers the contents of an ordinary register as an integer when
the register is examined in this way. Some machines have special registers which
can hold nothing but floating point; these registers are considered to have
floating point values. There is no way to refer to the contents of an ordinary
register as floating point value (although you can print it as a floating point value with ‘
Some registers have distinct “raw” and “virtual” data formats. This means that
the data format in which the register contents are saved by the operating
system is not the same one that your program normally sees. For example, the
registers of the 68881 floating point coprocessor are always saved in “extended”
(raw) format, but all C programs expect to work with “double” (virtual) format. In
such cases, GDB normally works with the virtual format only (the format that
makes sense for your program), but the
Normally, register values are relative to the selected stack frame (see
However, GDB must deduce where registers are saved, from the machine code
generated by your compiler. If some registers are not saved, or if GDB is unable to
locate the saved registers, the selected stack frame makes no difference.
Print the names and values of all registers except floating-point registers
(in the selected stack frame).
Print the names and values of all registers, including floating-point
registers.
Print the relativized value of each specified register, regname. As discussed in the following, register values are normally relative to the
selected stack frame. regname may be any register name valid on the machine you are using, with or without
the initial ‘$’.
On AMD 29000 family processors, registers are saved in a separate “register
stack”. There is no way for GDB to determine the extent of this stack. Normally,
GDB just assumes that the stack is “large enough”. This may result in GDB
referencing memory locations that do not exist. If necessary, you can get around
this problem by specifying the ending address of the register stack with the set rstack_high_ address command. The argument should be an address, which you probably want to
precede with ‘0x’ to specify in hexadecimal.
Display the current limit of the register stack, on AMD 29000 family
processors.