From: Nick Roberts <nickrob@snap.net.nz>
To: Joel Brobecker <brobecker@adacore.com>
Cc: ghost@cs.msu.su, gdb-patches@sourceware.org
Subject: Re: (gdb-6.8) Discard breakpoint address if shared library is unloaded
Date: Fri, 08 Feb 2008 01:37:00 -0000 [thread overview]
Message-ID: <18347.45621.630420.453287@kahikatea.snap.net.nz> (raw)
In-Reply-To: <20080207063817.GA3907@adacore.com>
Joel Brobecker writes:
> Vladimir,
>
> I could use a little help with your feedback. I think I'm getting it,
> but I think you might know more about this part of the code.
Since it looks like Vladimir can't find the time to look at this and because
you might like to make the branch shortly, FWIW, I've looked more closely
at it:
> I think we're still not there, unfortunately.
>
> > state -- it will be apparent from the locations. */
> > if (header_of_multiple)
> > pending = 0;
> > ! ui_out_field_fmt (uiout, "enabled", "%c",
> > ! bpenables[(int) b->enable_state]);
> > }
>
> The following code above "ui_out_field_fmt" can be deleted now:
>
> int pending = (b->loc == NULL || b->loc->shlib_disabled);
> /* For header of multiple, there's no point showing pending
> state -- it will be apparent from the locations. */
> if (header_of_multiple)
> pending = 0;
>
> That means that the curly braces can go too. We also need to restore
> the spacing after the enable state. We end up with:
I agree.
> annotate_field (3);
> if (part_of_multiple)
> ui_out_field_string (uiout, "enabled", loc->enabled ? "y" : "n");
> else
> ui_out_field_fmt (uiout, "enabled", "%c",
> bpenables[(int) b->enable_state]);
> ui_out_spaces (uiout, 2);
Putting this back to 2 spaces requires a similar change to the header to keep
alignment:
*************** breakpoint_1 (int bnum, int allflag)
*** 3780,3786 ****
ui_out_table_header (uiout, 4, ui_left, "disp", "Disp"); /* 3 */
if (nr_printable_breakpoints > 0)
annotate_field (3);
! ui_out_table_header (uiout, 4, ui_left, "enabled", "Enb"); /* 4 */
if (addressprint)
{
if (nr_printable_breakpoints > 0)
--- 3767,3773 ----
ui_out_table_header (uiout, 4, ui_left, "disp", "Disp"); /* 3 */
if (nr_printable_breakpoints > 0)
annotate_field (3);
! ui_out_table_header (uiout, 3, ui_left, "enabled", "Enb"); /* 4 */
if (addressprint)
{
if (nr_printable_breakpoints > 0)
> > ui_out_field_string (uiout, "addr", "<PENDING>");
> > else if (header_of_multiple)
> > ui_out_field_string (uiout, "addr", "<MULTIPLE>");
> > + else if (loc->shlib_disabled)
> > + ui_out_field_string (uiout, "addr", "<PENDING>");
> > else
> > ui_out_field_core_addr (uiout, "addr", loc->address);
> > }
>
> I understand what Vladimir said, but I think that the following should
> work too:
>
> @@ -3552,10 +3552,10 @@ print_one_breakpoint_location (struct br
> if (addressprint)
> {
> annotate_field (4);
> - if (b->loc == NULL)
> - ui_out_field_string (uiout, "addr", "<PENDING>");
> - else if (header_of_multiple)
> + if (header_of_multiple)
> ui_out_field_string (uiout, "addr", "<MULTIPLE>");
> + if (b->loc == NULL || loc->shlib_disabled)
> + ui_out_field_string (uiout, "addr", "<PENDING>");
> else
> ui_out_field_core_addr (uiout, "addr", loc->address);
> }
>
> The idea is that you can't have header_of_multiple=1 and b->loc == NULL
> at the same time. So it's OK to move the check for header_of_multiple
> up. And that avoids the code duplication.
I agree.
I can confirm that Gdb works as I would expect with these changes.
On a related note, breakpoint.c now has 7 columns:
ui_out_table_header (uiout, 7, ui_left, "number", "Num"); /* 1 */
up from the previous 3:
ui_out_table_header (uiout, 3, ui_left, "number", "Num"); /* 1 */
presumably for breakpoint numbers like 1.2 etc but it still seems to
anticipate a very large number of breakpoints.
--
Nick http://www.inet.net.nz/~nickrob
next prev parent reply other threads:[~2008-02-08 1:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080204214226.GF20922@adacore.com>
2008-02-04 21:55 ` Nick Roberts
2008-02-05 0:12 ` Joel Brobecker
2008-02-05 0:21 ` Joel Brobecker
2008-02-05 0:36 ` Nick Roberts
2008-02-05 0:54 ` Nick Roberts
2008-02-07 6:38 ` Joel Brobecker
2008-02-08 1:37 ` Nick Roberts [this message]
2008-02-08 6:44 ` Vladimir Prus
2008-02-08 7:37 ` Nick Roberts
2008-02-14 21:43 ` Joel Brobecker
2008-02-15 4:01 ` Nick Roberts
2008-02-15 8:39 ` Eli Zaretskii
2008-02-15 9:13 ` Nick Roberts
2008-02-16 12:59 ` Eli Zaretskii
2008-02-17 9:56 ` Vladimir Prus
2008-02-17 19:53 ` Nick Roberts
2008-02-19 19:02 ` Joel Brobecker
2008-02-19 20:04 ` Nick Roberts
2008-02-20 16:31 ` Joel Brobecker
2008-02-20 19:21 ` Nick Roberts
2008-02-20 20:27 ` Vladimir Prus
2008-02-25 10:04 ` Vladimir Prus
2008-02-25 19:39 ` Joel Brobecker
2008-02-26 10:03 ` Vladimir Prus
2008-02-26 22:55 ` 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=18347.45621.630420.453287@kahikatea.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=ghost@cs.msu.su \
/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