Re: RFC: Available registers as a target property

Mark Kettenis
2005-05-07T16:04:14Z

Hi Daniel,

Your proposal sounds reasonable to me. Do I understand correctly that
the "set" keyword is supposed to be used to specify the contents of
the `g' packet, or is there a somewhat broader use for them?

Anyway, here are some random thoughts about things we might need to
consider. It's a bit i386 centric, the issues mostly are not.

* Is this going to allow us to make changes freely to the internal
layout of GDB's register cache?

* How will we treat registers that the user might reasonably expect to
be there, but aren't made available by the target?

FreeBSD/i386 for example still has no way to get at the SSE registers,
but has no problem executing code that uses its registers. What do we
do when the user says "print $xmm0" when connected to a FreeBSD/i386
target? Do we print:

(gdb) p $xmm0
$1 = void

or are we going to try to print a more helpful message for
well-known-but-unavailable registers?

* What do we do with pseudo registers?

The ia32 MMX registers are optional pseudo registers; they reinterpret
the floating-point registers in a particular way. As such they won't
be transmitted between the target and GDB. Yet it would be nice if we
had a mechanism for the target to indicate whether MMX is available
such that GDB knows if it should display the MMX registers or not.

* How does this interact with register groups?

Do we need a mechanism to indicate the register group to which a
register belongs, or is the default register group behaviour good
enough?

Mark