This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: Breakpoint infrastructure cleanups [0/8]
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: gdb-patches at sources dot redhat dot com, Michael Snyder <msnyder at redhat dot com>
- Date: Wed, 8 Oct 2003 13:44:18 -0400
- Subject: Re: RFA: Breakpoint infrastructure cleanups [0/8]
- References: <20031008165534.GA8718@nevyn.them.org>
Daniel Jacobowitz writes:
> This is a series of eight patches which begin to clean up our infrastructure
> for tracking breakpoints. More specifically, I chose to split the struct
> breakpoint into two: one which is logically associated with the user's
> "break" command, and one which is logically associated with an insertable
> breakpoint. The general idea is that the mapping should be one-to-many
> eventually. Right now it isn't and there's a long way to go before we can
> get there, but this is a first step.
>
This is certainly the right direction. We have discussed this in very
general terms (I believe at the gcc conference), but I don't remember
a discussion on the gdb lists. Since this seems quite a big rewrite (I
am not sure, I just saw all this stuff appearing at once), how about
using the branching approach? It has worked well for a few features now.
elena
> This will make it simpler to have, for instance, a breakpoint on both the
> in-charge and not-in-charge constructors without bothering the user with
> that detail. Similarly (eventually!) for copies of an inlined function, or
> multiple copies of an executed line. This is a bit of a ways in the future
> but I'm working on it.
>
> On the infrastructure side we will be able to have an "impl_breakpoint"
> (short for implementation; better naming ideas?) for each location we are
> watching using hardware watchpoints. This will simplify a lot of code. It
> will also eventually become easier to object-orient our breakpoints.
>
> Except for a couple of minor bug fixes where noted, these patches change
> nothing. They use the assumption that every breakpoint has exactly one
> implementation breakpoint. After they've been applied, it's easy to find
> conceptual layering issues; most (not all) references to b->impl are
> potential problems, and some references to bpt->owner are also. I've
> converted functions which operated primarily on the impl to accept impl
> breakpoint arguments instead of user breakpoint arguments. Many of the
> remaining layering issus deal with printing the address of a breakpoint; I'd
> love to hear what other people think we should do for breakpoints with
> multiple addresses. Just say multiple, and provide a maint (or info)
> command to look at them?
>
> The actual patches will follow in separate messages. Thoughts? Comments on
> the overall approach? OK?
>
> --
> Daniel Jacobowitz
> MontaVista Software Debian GNU/Linux Developer