This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [RFC] Improve stabs debugging for mingw64 executables loaded at high addresses
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: "'Tristan Gingold'" <gingold at adacore dot com>
- Cc: <gdb-patches at sourceware dot org>
- Date: Wed, 15 Sep 2010 10:24:32 +0200
- Subject: RE: [RFC] Improve stabs debugging for mingw64 executables loaded at high addresses
- References: <000701cb541e$1160cde0$342269a0$@muller@ics-cnrs.unistra.fr> <282E4D5B-2863-4CC2-99EE-76A36BDE8A9F@adacore.com> <000a01cb5420$e7a44420$b6eccc60$@muller@ics-cnrs.unistra.fr> <9B2E419A-9C35-40DD-8979-B19C4FD69BD4@adacore.com>
> -----Message d'origine-----
> De?: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Tristan Gingold
> Envoyé?: Wednesday, September 15, 2010 9:29 AM
> À?: Pierre Muller
> Cc?: gdb-patches@sourceware.org
> Objet?: Re: [RFC] Improve stabs debugging for mingw64 executables
> loaded at high addresses
>
>
> On Sep 14, 2010, at 5:24 PM, Pierre Muller wrote:
>
> >>> Comments welcome,
> >>
> >> I think that some 64 bits targets have 8 bytes for the address.
> >
> >
> > Of course, dwarf debugging doesn't suffer from this limitation,
> > and uses 8-byte for addresses.
> > This is the default format for most 64-bit targets,
> > and it is the preferred debugging format for 64-bit
> > because of this 4-byte limitation of stabs...
> > So this is really a marginal case that I presented here.
>
> To clarify, I meant that some 64 bits targets have 8 bytes for the
> address in *stabs*.
> (eg: darwin64 - but the use of stabs is deprecated for this target).
Sorry for misunderstanding you.
I didn't know about a 64-bit version of stabs.
This is not in GNU binutils then, because
bfd/stabs.c still has a macro called STABSIZE equal to 12
which only allows for a 4-byte address at offset 8 for stab value field.
There is a FIXME at line 39:
"FIXME: This will have to change for a 64-bit object format."
But nothing changed in code apparently.
Where is the source of the support for 64-bit stabs for darwin64?
> OTOH, dbxread.c seems to be bound to 32-bits stabs address.
Which seems logical as also bfd only supports 32-bit,
I would be interested in extending support for 64-bit
stabs (which I would then implement inside Free Pascal too).
> I am not sure it is right to set objfile->section_offsets->offsets.
I am not either, that why this is really only a
Request For Comments!
> > The thing is that, for Free Pascal, we have lots of
> > troubles with DWARF (and some 64-bit specific),
> > thus I would like to be able to use STABS format (which
> > is less troublesome) but that also didn't work
> > because of this high address default base used by this compiler.
>
> So, it might be worth fixing Free Pascal too !
I could change the default load address inside Free Pascal Source
if stabs is used, but I wanted to try this out,
and as it seemed to help, I wanted to share it as a RFC.
But this addition would allow to handle dynamic libraries
(whose load address might be above the 0x100000000 threshold).
But I remember that for windows at least, there is an
incompatibility between relocation and stabs.
Pierre