Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Paul Hilfinger <hilfingr@gnat.com>
Cc: gdb@sourceware.org
Subject: Re: [RFC] multiple breakpoints from FILE:LINE
Date: Sat, 14 Jan 2006 16:16:00 -0000	[thread overview]
Message-ID: <20060114161640.GA12796@nevyn.them.org> (raw)
In-Reply-To: <20060114101507.7C5F048CBD6@nile.gnat.com>

On Sat, Jan 14, 2006 at 05:15:07AM -0500, Paul Hilfinger wrote:
> 
> > We have discussed this issue many times in the past, as recently as two
> > weeks ago.  In the beginning of 2005 I posted a prototype patch to set
> > only a single breakpoint, but associate it with multiple locations.  I
> > still firmly believe that that is the correct solution.  However, the
> > patch was never finished.
> 
> [The patch Daniel refers to here, by the way, is 
> 
>    http://sources.redhat.com/ml/gdb-patches/2005-03/msg00195.html]
> 
> What led you to conclude that you wouldn't need the ability to set (or
> delete) only SOME breakpoints corresponding to a given location (i.e.,
> some number greater than, say, 2 and less than all)?  I can see one possible
> reason: since the 'command' and 'condition' commands do not take 
> BP ranges, it is difficult to apply them to lots of breakpoints.  On the
> other hand, one could extend these commands to allow a range of breakpoints
> rather than a single breakpoint.  But then on the third hand (first foot?),
> the implementation would require some annoying manipulations to avoid
> double freeing (of expressions or command sequences) or other atrocities.

Just to be clear, there's no "range of breakpoints" concept in my
solution.  You get a single breakpoint, say, breakpoint number 2, which
corresponds to twenty occurances of some inlined function.

I have no objection to commands for finer grained modification of
breakpoints.  But they're going to be tricky to get right, because in
this new system I want to always keep some hard problems in mind.  For
example, preserving the enable state of breakpoints sensibly over a
recompiled and reloaded application.  If you've got "break foo.c:20"
and suddenly there's a new instance of it and it maps to 21 breakpoints
instead of 20, that's good.  If you've somehow said "disable 2 location
4" to disable just one of those twenty breakpoints, and now there are
21 instead of 20, you need to figure out which one's been disabled
by the user!

> > Those menus have got to go.  They're (a) confusing to users (in my
> > opinion, no real data), and (b) extremely awkward for graphical
> > frontends.
> 
> Interesting.  As I said, in Ada, the multi-line feature is much more
> important than in C.  AdaCore's version has been around for years, and
> has simply created multiple breakpoints (controlled by menu, as for
> overloading).  We haven't gotten loud calls for doing things
> differently (well, point (b) has caused internal gripes), but perhaps I
> should do some polling for soft grumbling from users.

From what I've seen, in GNAT (a) is less likely to be true.  In any
system where the compiler is likely to produce copies of a function
without clear explanation to the user, it's much more confusing.  GCC
will surely do this soon, e.g. for interprocedural constant
propagation.

-- 
Daniel Jacobowitz
CodeSourcery


  reply	other threads:[~2006-01-14 16:16 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-13 10:42 Paul Hilfinger
2006-01-13 11:32 ` Eli Zaretskii
2006-01-13 11:56   ` Joel Brobecker
2006-01-13 13:05     ` Eli Zaretskii
2006-01-13 14:17       ` Andrew STUBBS
2006-01-13 15:27         ` Daniel Jacobowitz
2006-01-13 15:25   ` Daniel Jacobowitz
2006-01-13 15:19 ` Paul Koning
2006-01-13 15:23 ` Daniel Jacobowitz
2006-01-13 15:40   ` Joel Brobecker
2006-01-14 10:15   ` Paul Hilfinger
2006-01-14 16:16     ` Daniel Jacobowitz [this message]
2006-01-15  1:51 : " Cyrille Comar
2006-01-15 22:23 ` Paul Hilfinger
2006-01-15 17:38 David Anderson
2006-01-15 17:50 ` Daniel Jacobowitz
2006-01-15 17:54 ` Robert Dewar
2006-01-15 18:33   ` Andreas Schwab
2006-01-15 19:06     ` Robert Dewar

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=20060114161640.GA12796@nevyn.them.org \
    --to=drow@false.org \
    --cc=gdb@sourceware.org \
    --cc=hilfingr@gnat.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