Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC/RFA?] Should break FILE:LINENO skip prologue?
Date: Wed, 09 Jan 2008 20:01:00 -0000	[thread overview]
Message-ID: <20080109200113.GG21281@adacore.com> (raw)
In-Reply-To: <200801091916.m09JGLPd004324@brahms.sibelius.xs4all.nl>

> > I would like to revive a discussion that started sometime in 2002.
> > The idea is the following: When breaking on a given source line, if
> > that line is inside a function prologue, skip the prologue (using
> > the linetable to do so).
> 
> You've got me confused here.  How can it be that if skipping using the
> line table helps, the breakpoint location (which I assume has been
> determined based on the line table) isn't right to begin with?

Actually, the line table *is* correct.

Assuming the following code:

    1 void
    2 call_me (int number)
    3 {
    4   dial (number);

Typically, the linetable will have the following entries:

    line 3: <function prologue>
    line 4: <code for call to dial>
    etc...

What I'd like GDB to do is, when the user decides to break on line
2 or 3, to find the address of line 3, realize that it is in the
function prologue, and then skip line 3 until finding the "first
line of real code" (in this case, it's easy, line 4).

Since we are breaking by line number in this case, we know we have
a linetable for our function, and finding the "first line of real
code" (sic from symtab.c:find_function_start_sal description) is
more robust when you rely on debugging info than on prologue scanning.

> Ultimately, the problem is that GCC is (still) generating the wrong
> debug information, since either:

I completely agree, but I don't think the compiler is going to be
fixed anytime soon. I propose to be pragmatic and modify the GDB
behavior so that we do a more useful job with what we have now.
Eventually, when we have better debugging info, we can stop skipping
the function prologue in all cases if we want.

As an aside, I have to say that I find the prologue skipping extremely
convenient regardless of parameter display, because the large majority
of the time, I don't want to stop before the prologue only to have to
"next/step" over it right after.  I'd rather stop in the function body
immediately.  So removing the prologue skipping would be a regression
in usability in my opinion.

-- 
Joel


  reply	other threads:[~2008-01-09 20:01 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
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 [this message]
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=20080109200113.GG21281@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=mark.kettenis@xs4all.nl \
    /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