Re: 'g/G' GDB commands

Michael Snyder
2007-11-15T13:48:59Z

On Thu, 2007-11-15 at 10:54 +0100, Guillaume MENANT wrote:
> Hello,
>
> I'm trying to make a stub for GDB but i've a question about the 'g/G'
> commands. I don't really understand the following paragraph :
>
> "The following |g|/|G| packets have previously been defined. In the
> below, some thirty-two bit registers are transferred as sixty-four bits.
> Those registers should be zero/sign extended (which?) to fill the space
> allocated. Register bytes are transferred in target byte order. The two
> nibbles within a register byte are transferred most-significant -
> least-significant.

Starting from here...

> MIPS32 : All registers are transferred as thirty-two bit quantities in
> the order: 32 general-purpose; sr; lo; hi; bad; cause; pc; 32
> floating-point registers; fsr; fir; fp.
> MIPS64 : All registers are transferred as sixty-four bit quantities
> (including thirty-two bit registers such as |sr|). The ordering is the
> same as |MIPS32|."

The text is about MIPS processors.

> The chip I want to debug is the Atmel AT697E and I don't really know
> which register of the AT697E corresponds to "32 general-purpose", "sr",
> "lo", "hi", "bad", "cause", "fsr", "fir"... How can I have more
> information about that

Atmel is a Sparc processor. Its register set doesn't resemble
the MIPS at all. MIPS was just chosen as an example in the text
above.

If you configure gdb for a generic sparc target, you can get
an idea of the register set gdb will be looking for from a
sparc variant.