From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: andrew.stubbs@st.com
Cc: drow@false.org, gdb-patches@sources.redhat.com
Subject: Re: [SH][PATCH] Disable ABI frame sniffer
Date: Fri, 11 Nov 2005 00:10:00 -0000 [thread overview]
Message-ID: <200511102259.jAAMxdJC029449@elgar.sibelius.xs4all.nl> (raw)
In-Reply-To: <43735A1D.6010406@st.com> (message from Andrew STUBBS on Thu, 10 Nov 2005 14:33:01 +0000)
> Date: Thu, 10 Nov 2005 14:33:01 +0000
> From: Andrew STUBBS <andrew.stubbs@st.com>
>
> Daniel Jacobowitz wrote:
> > Quite on the contrary, my experience is that in most programs you'll
> > need it at least a couple of times, e.g. to get out of bits of libc or
> > linker-generated code.
>
> Bare-machine (or OS21) sh-elf doesn't use glibc with all its
> complications. We use newlib and we always compile it with debug info
> and CFI so there is it should never need to fall back.
But can you guarantee that other people won't need the fallback?
> > For any frame with CFI, the CFI is used in preference. If you don't
> > want the fallback unwinder to come into play, if as you claim you
> > really don't need it, then find out why it's being triggered in the
> > first place.
>
> The problem only occurs in threads (unless 'set backtrace pastmain' is
> set, in which case it happens in any program) when the backtrace falls
> off the end of the program. There are no more frames because there's no
> more stack, but there's no way to know that unless you assume the CFI
> and program run out at the same time.
Ah there's your real problem. The unwinder walks off the stack and at
that point concludes the stack is thrashed. This is a recurring
problem on many platforms, especially when threads are involved. It
might be possible to detect the end of the stack on your platform and
teach the fallback unwinder about it. That might involve some changes
to the threads library and/or crt0 though, to make it mark the end of
the stack properly. It'd also be great to have a way to encode the
end of the stack in CFI. Unfortunately there has been quite a bit of
talk about this, but nobody has implemeneted anything yet.
So I mostly agree with Daniel, and think your patch is a bad idea. Sorry.
Mark
next prev parent reply other threads:[~2005-11-10 23:00 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-09 18:08 Andrew STUBBS
2005-11-10 0:17 ` Andreas Schwab
2005-11-10 3:30 ` Daniel Jacobowitz
2005-11-10 12:27 ` Andrew STUBBS
2005-11-10 14:24 ` Daniel Jacobowitz
2005-11-10 4:27 ` Daniel Jacobowitz
2005-11-10 13:36 ` Andrew STUBBS
2005-11-10 14:34 ` Daniel Jacobowitz
2005-11-10 23:09 ` Andrew STUBBS
2005-11-10 23:13 ` Andrew STUBBS
2005-11-11 0:10 ` Mark Kettenis [this message]
2005-11-11 10:31 ` Daniel Jacobowitz
2005-11-11 18:21 ` Andrew STUBBS
2005-11-11 10:35 ` Daniel Jacobowitz
2005-11-11 20:09 ` Andrew STUBBS
2005-11-13 18:57 ` Daniel Jacobowitz
2005-11-13 23:58 ` Jim Blandy
2005-11-23 19:52 ` Andrew STUBBS
2005-11-24 22:48 ` Andrew STUBBS
2005-11-24 23:42 ` Mark Kettenis
2005-11-10 11:11 ` Eli Zaretskii
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=200511102259.jAAMxdJC029449@elgar.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=andrew.stubbs@st.com \
--cc=drow@false.org \
--cc=gdb-patches@sources.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