From: Andrew Haley <aph@redhat.com>
To: Ulrich Drepper <drepper@redhat.com>
Cc: Mark Kettenis <mark.kettenis@xs4all.nl>,
Jan Kratochvil <jan.kratochvil@redhat.com>,
gcc@gcc.gnu.org, libc-alpha@sources.redhat.com,
gdb@sourceware.org, Jakub Jelinek <jakub@redhat.com>,
Richard Henderson <rth@redhat.com>
Subject: Re: Unwinding CFI gcc practice of assumed `same value' regs
Date: Tue, 12 Dec 2006 15:26:00 -0000 [thread overview]
Message-ID: <17790.51754.814267.773596@zebedee.pink> (raw)
In-Reply-To: <457EC8BF.3040707@redhat.com>
Ulrich Drepper writes:
> Andrew Haley wrote:
> > Null-terminating the call stack is too well-established practice to be
> > changed now.
>
> Which does not mean that the mistake should hold people back.
Sure it does. Not breaking things is an excellent reason, probably
one of the the best reasons you can have.
> This is just one of the mistakes in the x86-64 ABI. It was copied
> from x86 and it was wrong there already.
>
> > In practice, %ebp either points to a call frame -- not necessarily the
> > most recent one -- or is null. I don't think that having an optional
> > frame pointer mees you can use %ebp for anything random at all,
>
> Of course it means that.
Really? Well, that's one interpretation. I don't believe that,
though. It's certainly an inconsistency in the specification, which
says that null-termination is supported, and this implies that you
can't put a zero in there.
> > The right way to fix the ABI is to specify that %ebp mustn't be
> > [mis]used in this way, not to add a bunch more unwinder data.
>
> Nope. The right way is to specify things like backtraces with the
> adequate mechanism. I fully support adding the Dwarf3 unwinder
> requirements.
"All of these" might be the right way to go. That is, keep
null-terminating the stack, strengthen the rules about what you might
do with %ebp, and extend debuginfo.
Andrew.
next prev parent reply other threads:[~2006-12-12 15:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-11 19:03 Jan Kratochvil
2006-12-11 22:40 ` Roland McGrath
2006-12-12 15:54 ` Jakub Jelinek
2006-12-12 13:55 ` Andrew Haley
2006-12-12 14:55 ` Mark Kettenis
2006-12-12 15:04 ` Andrew Haley
2006-12-12 15:21 ` Ulrich Drepper
2006-12-12 15:26 ` Andrew Haley [this message]
2006-12-12 15:39 ` Ulrich Drepper
2006-12-13 18:11 ` Michael Matz
2006-12-12 15:50 ` Jan Kratochvil
2006-12-12 16:19 ` Jakub Jelinek
2006-12-12 16:55 ` Ian Lance Taylor
2006-12-12 17:06 ` Andrew Haley
2006-12-12 17:34 ` Mark Kettenis
2006-12-13 18:02 ` Michael Matz
2006-12-13 18:10 ` Michael Matz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=17790.51754.814267.773596@zebedee.pink \
--to=aph@redhat.com \
--cc=drepper@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=gdb@sourceware.org \
--cc=jakub@redhat.com \
--cc=jan.kratochvil@redhat.com \
--cc=libc-alpha@sources.redhat.com \
--cc=mark.kettenis@xs4all.nl \
--cc=rth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox