This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: i386 register numbering


>> From: Mark Kettenis <kettenis@science.uva.nl>
>> Date: 28 Jul 2001 13:54:19 +0200
>> 
>> In GDB we have STAB_REG_TO_REGNUM, DWARF_REG_TO_REGNUM, etc.


Yep.

They map a stab/dwarf/... reg onto a cooked regnum (not to be confused 
with a raw reg found in the register cache).  Because the i386 
implements its registers using the old PSUEDO / CONVERT stuff, the 
importance of differentiating between the two may not be obvious.


>> We have
>> to provide a suitable definition for those in tm-i386.h.  However, the
>> problem mentioned above makes it a bit tricky, since GCC always uses
>> the same register numbering scheme, regardless of the actual debugging
>> format.  Most ELF targets use the Dwarf scheme, even if the debugging
>> format is stabs.  And it seems that DJGPP uses the "default" scheme,
>> even if you ask for Dwarf 2 debugging info.
> 
> 
> DJGPP supports 3 debug info formats: COFF, stabs, and (lately) DWARF2;
> the default is COFF.  (Btw, I don't see any COFF_REG_TO_REGNUM.)  I'm
> guessing that no one (including myself  [;-)] bothered to review the
> register naming scheme when support for stabs and DWARF2 was added...
> 
> But there's something in your explanation that I don't get: if GCC
> always uses the same scheme, no matter what the debug info, and since
> all i386 targets use the same i386.h header which defines this scheme,
> how come DJGPP can use something different than the other targets?
> What am I missing?


There is something here I don't get either.

At present it is assumed that, for a given ISA/ABI, there is only one 
mapping from a DEBUG reg to a REGNUM.  I take it, Mark, that you're 
saying that in reality, the mapping depends on all of:

{compiler, object format, debug format, ISA/ABI} (debug reg) -> REGNUM

True? Ulgh!

	Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]