From: Joel Brobecker <brobecker@adacore.com>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: msnyder@specifix.com, ebotcazou@adacore.com,
jimb@codesourcery.com, gdb-patches@sourceware.org
Subject: Re: [RFC/RFA?] Should break FILE:LINENO skip prologue?
Date: Fri, 11 Jan 2008 05:36:00 -0000 [thread overview]
Message-ID: <20080111053547.GB12954@adacore.com> (raw)
In-Reply-To: <200801102208.m0AM8aDR023344@brahms.sibelius.xs4all.nl>
> 1. int
> 2. foo (int i, double d)
> 3. {
> 4. int j = 42;
> 5. float f = sin(d);
> 6. ...
> 7. }
>
> the first assignment may be scheduled into the prologue, but the
> second almost certainly won't.
The prologue should never include any of the local variable assignments.
At -O0, the situation is very clear and easy, as the variable
assignments are always past the prologue. Each variable assignment
has its own line and you can break on them as usual. My patches
will not affect that.
The situation becomes trickier at -O1 and beyond, because parts of
the prologue may be delayed later inside the function body. But in
that case, the compiler will still emit a specific line for the
instruction block that does the assignment. So the actual linetable
will look like this:
Line 3: prologue
Line 4. assign j
Lin3 3. prologue
Line 5. call sin, assign f
...
In that case, the skipping will only skip the first part of the
prologue, and you can still break on any assignment if you'd like.
My patches do not affect that situation either.
> 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.
Hopefully the explaination above convinces you that this is the case?
--
Joel
next prev parent reply other threads:[~2008-01-11 5:36 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
2008-01-11 5:36 ` Joel Brobecker [this message]
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=20080111053547.GB12954@adacore.com \
--to=brobecker@adacore.com \
--cc=ebotcazou@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=jimb@codesourcery.com \
--cc=mark.kettenis@xs4all.nl \
--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