This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] Improve amd64 prologue analysis
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: pierre dot muller at ics-cnrs dot unistra dot fr
- Cc: brobecker at adacore dot com, gdb-patches at sourceware dot org
- Date: Wed, 24 Nov 2010 22:18:52 +0100 (CET)
- Subject: Re: [RFC] Improve amd64 prologue analysis
- References: <001701cb84ea$6883c170$398b4450$@muller@ics-cnrs.unistra.fr> <20101118172209.GE2634@adacore.com> <004201cb87c1$dab95cd0$902c1670$@muller@ics-cnrs.unistra.fr>
> From: "Pierre Muller" <pierre.muller@ics-cnrs.unistra.fr>
> Date: Fri, 19 Nov 2010 09:14:56 +0100
>
> > -----Message d'origine-----
> > De?: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> > owner@sourceware.org] De la part de Joel Brobecker
> > Envoyé?: jeudi 18 novembre 2010 18:22
> > À?: Pierre Muller
> > Cc?: gdb-patches@sourceware.org
> > Objet?: Re: [RFC] Improve amd64 prologue analysis
> >
> > > Free Pascal for x86_64 (amd64) CPU generates losts of functions
> > > that do not use RBP as a frame pointer.
> > > I tried to improve amd64-tdep.c to better cope
> > > with this case.
> >
> > I thought that on amd64, we weren't going to have prologue parsers
> > and rely on frame unwinding info instead? At AdaCore, we have the
> > same sort of things because of Windows where the system code (mostly
> > system DLLs) does not have the unwinding info in DWARF format. But
> > for code generated by us, we have all the debugging information needed
> > to unwind without parsing the prologue, even on Windows64.
>
> Does this means that we should only use that code
> if no dwarf debug info is available?
The official amd64 ABI that's used by most, if not all, Unix-like
operating systems, pretty much mandates DWARF-like debug info. It
really should always be available on platforms that follow that ABI.
Now I suspect that 64-bit Windows, given its utterly retarded IL32P64
model, doesn't follow that ABI. Therefore my suggestion would be to
only use this code on Windows.
> The problem currently on Windows-64bit generated code
> is that dwarf debug information is more
> deeply broken than stabs, so that I am still mainly using stabs
> (especially to debug dwarf problems...).
Hmm, stabs on 64-bit platforms has never really worked.