From: Jim Blandy <jimb@redhat.com>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: gdb-patches@sources.redhat.com, Michael Snyder <msnyder@redhat.com>
Subject: Re: RFA: Breakpoint infrastructure cleanups [0/8]
Date: Wed, 08 Oct 2003 18:07:00 -0000 [thread overview]
Message-ID: <vt27k3ffvv5.fsf@zenia.home> (raw)
In-Reply-To: <20031008165534.GA8718@nevyn.them.org>
Daniel Jacobowitz <drow@mvista.com> 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 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.
This sounds really great.
When you think about what actually is happening in the debuggee, the
mapping is actually many-to-many, since you can have multiple user
breakpoints at the same address. Not that this affects your data
structures --- just an observation.
> 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.
How about "user breakpoints" and "machine 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?
I think 'info break' should list the addresses. I don't know how this
should fit into the MI format, but it ought to be MI that changes,
rather than omitting useful behavior.
In my ideal world, you'd get an explanation for why each address was
chosen, when it's not obvious:
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x08048354 in foo::foo (in-charge) at hello.c:8
0x08048364 in foo::foo (not-in-charge) at hello.c:8
(gdb)
next prev parent reply other threads:[~2003-10-08 18:07 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-08 16:55 Daniel Jacobowitz
2003-10-08 17:33 ` Elena Zannoni
2003-10-08 19:04 ` Andrew Cagney
2003-10-08 19:07 ` Daniel Jacobowitz
2003-10-08 19:44 ` David Carlton
2003-10-08 20:36 ` Elena Zannoni
2003-10-08 19:49 ` Andrew Cagney
2003-10-08 18:07 ` Jim Blandy [this message]
2003-10-08 18:23 ` Joel Brobecker
2003-10-08 19:05 ` Daniel Jacobowitz
2003-10-08 19:52 ` Andrew Cagney
2003-10-08 20:30 ` Daniel Jacobowitz
2003-10-08 21:09 ` Andrew Cagney
2003-10-08 21:11 ` Daniel Jacobowitz
2003-10-08 21:40 ` Elena Zannoni
2003-10-08 22:28 ` Andrew Cagney
2003-10-09 19:19 ` Michael Snyder
2003-10-14 1:38 ` Daniel Jacobowitz
2003-10-14 15:40 ` Andrew Cagney
2003-10-14 15:46 ` David Carlton
2003-10-14 15:51 ` Daniel Jacobowitz
2003-10-14 16:27 ` Elena Zannoni
2003-10-14 20:45 ` Michael Snyder
2003-10-15 15:02 ` Andrew Cagney
2003-10-15 18:20 ` Michael Snyder
2003-10-15 18:30 ` Andrew Cagney
2003-10-15 22:19 ` Michael Snyder
2003-10-15 22:23 ` Andrew Cagney
2003-10-15 22:37 ` Michael Snyder
2003-10-15 18:56 ` Elena Zannoni
2003-10-16 6:59 ` Eli Zaretskii
2003-10-16 13:11 ` Daniel Jacobowitz
2003-10-16 14:08 ` Paul Koning
2003-10-16 14:21 ` Elena Zannoni
2003-10-16 15:54 ` Eli Zaretskii
2003-10-16 23:20 ` Michael Snyder
2003-10-16 23:18 ` Michael Snyder
2003-10-16 15:45 ` Eli Zaretskii
2003-10-16 23:14 ` Michael Snyder
2003-10-15 22:41 ` Daniel Jacobowitz
2003-10-16 6:55 ` Eli Zaretskii
2003-10-16 14:25 ` Andrew Cagney
2003-10-16 16:02 ` Eli Zaretskii
2003-10-16 23:24 ` Michael Snyder
2003-10-17 6:46 ` Eli Zaretskii
2003-10-17 21:38 ` Michael Snyder
2003-10-18 8:43 ` Eli Zaretskii
2003-10-20 18:48 ` Michael Snyder
2003-10-16 16:16 ` Daniel Jacobowitz
2003-10-16 18:20 ` Andrew Cagney
2003-10-16 23:26 ` Totally OT Michael Snyder
2003-10-16 16:03 ` RFA: Breakpoint infrastructure cleanups [0/8] David Carlton
2003-10-16 16:17 ` Daniel Jacobowitz
2003-10-08 20:55 ` Elena Zannoni
2003-10-08 20:59 ` Daniel Jacobowitz
2003-10-09 6:09 ` Eli Zaretskii
2003-10-09 14:08 ` Daniel Jacobowitz
2003-10-09 17:02 ` Eli Zaretskii
2003-10-09 19:41 ` Daniel Jacobowitz
2003-10-19 16:43 ` Andrew Cagney
2003-10-09 19:33 ` Michael Snyder
2003-10-08 19:38 ` David Carlton
2003-10-08 21:00 ` Daniel Jacobowitz
2003-10-09 6:07 ` Eli Zaretskii
2003-10-08 18:26 ` Eli Zaretskii
2003-10-08 19:09 ` Daniel Jacobowitz
2003-10-19 15:55 ` Andrew Cagney
2003-10-19 16:39 ` Eli Zaretskii
2003-10-30 5:49 ` Daniel Jacobowitz
2003-11-03 18:00 ` Daniel Jacobowitz
2003-11-04 19:57 ` Michael Snyder
[not found] <1065728983.12011.ezmlm@sources.redhat.com>
2003-10-09 20:01 ` Jim Ingham
2003-10-15 19:48 Michael Elizabeth Chastain
2003-10-15 22:00 ` Michael Snyder
2003-10-15 22:14 Michael Elizabeth Chastain
2003-10-15 22:36 ` Michael Snyder
[not found] <1066321046.18949.ezmlm@sources.redhat.com>
2003-10-16 18:58 ` Jim Ingham
2003-10-16 23:30 ` Michael Snyder
2003-10-16 19:02 ` Jim Ingham
2003-10-17 7:04 ` Eli Zaretskii
2003-10-17 16:55 ` Jim Ingham
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=vt27k3ffvv5.fsf@zenia.home \
--to=jimb@redhat.com \
--cc=drow@mvista.com \
--cc=gdb-patches@sources.redhat.com \
--cc=msnyder@redhat.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