This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Multiple breakpoint locations


> Date: Tue, 13 Nov 2007 15:39:31 -0800
> From: "Douglas Evans" <dje@google.com>
> Cc: "Vladimir Prus" <ghost@cs.msu.su>, gdb@sources.redhat.com
> 
> On Nov 13, 2007 2:18 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> > > From:  Vladimir Prus <ghost@cs.msu.su>
> > > Date:  Tue, 13 Nov 2007 22:28:15 +0300
> > >
> > > >   (gdb) d 1.1
> > > >   warning: bad breakpoint number at or near '1.1'
> > >
> > > Well, you can't really delete a location -- if breakpoint expression
> > > corresponds to 20 addresses, that's the way it is -- you cannot delete
> > > some of those addresses from the program ;-)
> >
> > Sorry, I don't understand why; can you please elaborate?  Removing a
> > breakpoint instruction from a specific address is a primitive
> > operation of the target back-end; why can't we use it for that single
> > address?
> 
> I think it's a question of how much complexity one wants here.  AIUI,
> the breakpoint is represented as source+line.  One would have to
> augment that to mean source+line+except-this (I think).

Not necessarily.  You could look up the struct bp_location that
corresponds to 1.1 (by using its address as a key), and remove that
struct bp_location from the chain we maintain for breakpoint 1.

> Also, it's not just "delete 1.1".  It's also condition, commands, and
> ignore.

Well, removing struct bp_location should take care of that as well.
Am I missing something?

> I'm not suggesting all (or any) should be supported, just that we
> shouldn't tackle any of them without thinking the big picture
> through at least a bit.

Well, my big picture is that today we have no solution for the
following use case: (a) I set a breakpoint that results in multiple
locations; (b) I look at "info break" and realize that some of these
locations are irrelevant for the problem I'm debugging, and I don't
want the program to stop there (e.g., maybe stopping there will
disrupt some timing); (c) I want to remove these locations from the
breakpoints list.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]