[RFC] Mixing 32-bit and 64-bit DWARF format

Mark Kettenis kettenis@gnu.org
Mon Oct 18 20:03:00 GMT 2004


I've recently got hold of an SGI O2, so I'm working on porting GDB to
OpenBSD/sgi (a.k.a. OpenBSD/mips64).  In doing so, I discovered that
GDB doesn't really like the mixing of 32-bit and 64-bit DWARF format
inside a single compilation unit.  Unfortunately mixing those two is
what the current OpenBSD/sgi toolchain does; I've got a 32-bit
.dwarf_info section and a 64-bit .dwarf_line section.  This makes GDB
crash.

Now the DWARF Version 3 draft clearly states that this is a bug:

   The 32-bit and 64-bit DWARF format conventions must not be
   intermixed within a single compilation unit.

So I'll try to get the OpenBSD/sgi toolchain fixed.  However, GDB
shouldn't crash on bogus input, so something should be done about it.
I can see two options:

1) Make this an error() such that GDB refuses to load the file.

2) Make GDB complain() and continue to read the section according to
   the format specified by the initial_length of the section.

I'm leaning towards the second option (be liberal in what you accept),
but if no-one has stumbled across this before on other systems the
first option would be acceptable too (since I can fix OpenBSD/sgi
before the official release).

Optinions?

Mark



More information about the Gdb mailing list