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


   Date: Sat, 28 Jul 2001 08:14:26 -0400
   From: Eli Zaretskii <eliz@delorie.com>

   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...

With the patch that I just checked in, COFF and stabs should do the
right thing for DJGPP.  DWARF2 will probably still give you the wrong
register.  You might want to consider changing GCC such that it uses
the standard Dwarf renumbering for DWARF2.  I don't think it really
matters since there aren't any native tools that you need to be
compatible with.  On the other hand, using DWARF2 with a numbering
scheme that nobody else uses, might trigger some bugs.
If you don't change GCC you should probably override
DWARF2_REG_TO_REGNO in config/i386/tm-go32.h.

   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?

Several GCC targets redefine DBX_REGISTER_NUMBER, see for example
linux.h in that same directory.

Mark


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