Re: [RFC] Improve amd64 prologue analysis

Mark Kettenis
2010-11-24T21:19:27Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1779 bytes --]

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