From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: msnyder@specifix.com
Cc: ebotcazou@adacore.com, mark.kettenis@xs4all.nl,
brobecker@adacore.com, jimb@codesourcery.com,
gdb-patches@sourceware.org
Subject: Re: [RFC/RFA?] Should break FILE:LINENO skip prologue?
Date: Thu, 10 Jan 2008 22:10:00 -0000 [thread overview]
Message-ID: <200801102208.m0AM8aDR023344@brahms.sibelius.xs4all.nl> (raw)
In-Reply-To: <1200001622.14654.29.camel@localhost.localdomain> (message from Michael Snyder on Thu, 10 Jan 2008 13:47:02 -0800)
> From: Michael Snyder <msnyder@specifix.com>
> Date: Thu, 10 Jan 2008 13:47:02 -0800
>
> On Thu, 2008-01-10 at 12:47 +0100, Eric Botcazou wrote:
> > > If generating the right location information for -O0 is too difficult,
> > > perhaps the compiler should make life easier for itself and disable
> > > scheduling instructions into the prologue?
> >
> > What do you call "scheduling instructions into the prologue" exactly?
>
> I wouldn't speak for Mark, but personally I could imagine, say,
> that at -O0 gcc might treat the prologue (whatever we decide
> that means) as an atom, and not allow non-prologue instructions
> to be shuffled into it.
>
> The next question would be, are automatic variable initializations
> part of that atom?
>
> I might say that I personally rarely need to debug the "formal"
> prologue (that part that would exist in any (framed/frameless)
> function independent of automatics initialization), and when I
> do, it's as a tools developer, not as an ordinary debugger user.
> Therefore I don't mind having to do something "special".
>
> But the initializations are another story, especially if they
> require non-trivial stuff like computations or function calls.
> Any user might reasonably want to debug those. So any change
> that made it difficult for a user to debug those (say by forcing
> him to set a break at the label) would go against the grain
> for me.
I think that the compiler will actually almost never move non-trivial
initializations into the prologue, especially if they involve function
calls. The prologue is all about putting the origional function
arguments in a safe place, and that needs to be done before you call
other functions that might clobber registers. So if you have
something like:
int
foo (int i, double d)
{
int j = 42;
float f = sin(d);
...
}
the first assignment may be scheduled into the prologue, but the
second almost certainly won't. I don't think anybody will actually
miss the possibility to break on the first assignment. If we can
somehow ascertain ourselves that indeed we can still put a breakpoint
on the second assignment and have it break before entering sin(), I
think Joels origional diff is actually acceptable.
next prev parent reply other threads:[~2008-01-10 22:10 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-09 15:18 Joel Brobecker
2008-01-09 19:11 ` Jim Blandy
2008-01-09 19:16 ` Daniel Jacobowitz
2008-01-09 19:46 ` Joel Brobecker
2008-01-09 20:38 ` Eric Botcazou
2008-01-10 11:01 ` Mark Kettenis
2008-01-10 11:45 ` Eric Botcazou
2008-01-10 21:47 ` Michael Snyder
2008-01-10 22:10 ` Mark Kettenis [this message]
2008-01-11 5:36 ` Joel Brobecker
2008-01-11 11:28 ` Mark Kettenis
2008-01-11 18:22 ` Joel Brobecker
2008-01-11 21:07 ` Eli Zaretskii
2008-01-11 21:14 ` Mark Kettenis
2008-01-12 12:18 ` Eli Zaretskii
2008-01-12 14:30 ` Joel Brobecker
2008-01-12 12:25 ` Eli Zaretskii
2008-01-12 14:35 ` Joel Brobecker
2008-01-12 15:32 ` Mark Kettenis
2008-01-12 15:55 ` Eli Zaretskii
2008-01-12 16:03 ` Joel Brobecker
2008-01-12 16:26 ` Eli Zaretskii
2008-01-12 16:18 ` Mark Kettenis
2008-01-12 16:57 ` Eli Zaretskii
2008-01-12 17:58 ` Daniel Jacobowitz
2008-01-13 4:22 ` Eli Zaretskii
2008-01-13 6:25 ` Joel Brobecker
2008-01-13 6:54 ` Eli Zaretskii
2008-01-13 10:36 ` Joel Brobecker
2008-01-14 23:02 ` Michael Snyder
2008-01-15 3:57 ` Joel Brobecker
2008-01-14 22:57 ` Michael Snyder
2008-01-13 9:21 ` Mark Kettenis
2008-01-13 10:19 ` Eli Zaretskii
2008-01-14 22:25 ` Jim Blandy
2008-01-14 22:33 ` Mark Kettenis
2008-01-14 10:30 ` Pierre Muller
2008-01-14 12:25 ` Daniel Jacobowitz
2008-01-14 23:00 ` Michael Snyder
2008-01-15 17:13 ` Jim Blandy
2008-01-14 22:17 ` Jim Blandy
2008-01-14 22:50 ` Michael Snyder
2008-01-15 12:29 ` Daniel Jacobowitz
2008-01-15 12:39 ` Joel Brobecker
2008-01-15 17:15 ` Jim Blandy
2008-01-15 18:47 ` Eli Zaretskii
2008-01-15 21:40 ` Ulrich Weigand
2008-01-15 23:24 ` Andreas Schwab
2008-01-16 4:21 ` Eli Zaretskii
2008-01-16 9:13 ` Andreas Schwab
2008-01-16 18:49 ` Eli Zaretskii
2008-01-16 21:13 ` Andreas Schwab
2008-01-16 4:15 ` Eli Zaretskii
2008-01-16 4:20 ` Eli Zaretskii
2008-01-16 10:35 ` Mark Kettenis
2008-01-16 18:57 ` Eli Zaretskii
2008-01-16 21:36 ` Jim Blandy
2008-01-17 4:13 ` Eli Zaretskii
2008-01-17 4:18 ` Michael Snyder
2008-01-17 9:47 ` Mark Kettenis
2008-01-17 21:51 ` Michael Snyder
2008-01-17 22:09 ` Jim Blandy
2008-01-17 23:42 ` Michael Snyder
2008-01-17 18:38 ` Jim Blandy
2008-01-19 13:47 ` Eli Zaretskii
2008-01-20 15:03 ` Joel Brobecker
2008-01-20 19:50 ` Eli Zaretskii
2008-01-21 2:27 ` Joel Brobecker
2008-01-26 19:58 ` Eli Zaretskii
2008-01-16 21:25 ` Jim Blandy
2008-01-16 2:10 ` Michael Snyder
2008-01-11 20:32 ` Michael Snyder
2008-01-11 20:36 ` Eric Botcazou
2008-01-10 22:21 ` Eric Botcazou
2008-01-10 14:06 ` Daniel Jacobowitz
2008-01-10 17:06 ` Jim Blandy
2008-01-09 19:44 ` Joel Brobecker
2008-01-09 19:16 ` Mark Kettenis
2008-01-09 20:01 ` Joel Brobecker
2008-01-09 20:25 ` Michael Snyder
2008-01-09 20:35 ` Joel Brobecker
2008-01-09 21:05 ` Michael Snyder
2008-01-10 4:16 ` Eli Zaretskii
2008-01-10 4:16 ` Joel Brobecker
2008-01-10 9:29 ` Andreas Schwab
2008-01-11 10:35 ` Eli Zaretskii
2008-01-10 10:39 ` Mark Kettenis
2008-01-10 15:39 ` Joel Brobecker
2008-01-10 15:51 ` Daniel Jacobowitz
2008-01-11 10:44 ` Eli Zaretskii
2008-01-10 15:46 ` Daniel Jacobowitz
2008-01-10 21:49 ` Michael Snyder
2008-01-10 17:15 ` Jim Blandy
2008-01-31 22:17 ` Daniel Jacobowitz
2008-01-31 22:59 ` Joel Brobecker
2008-02-02 1:20 ` Joel Brobecker
2008-02-27 19:48 ` Daniel Jacobowitz
2008-02-27 20:52 ` Joel Brobecker
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=200801102208.m0AM8aDR023344@brahms.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=brobecker@adacore.com \
--cc=ebotcazou@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=jimb@codesourcery.com \
--cc=msnyder@specifix.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