From: Vladimir Prus <ghost@cs.msu.su>
To: Nick Roberts <nickrob@snap.net.nz>
Cc: Joel Brobecker <brobecker@adacore.com>, gdb-patches@sourceware.org
Subject: Re: (gdb-6.8) Discard breakpoint address if shared library is unloaded
Date: Sun, 17 Feb 2008 09:56:00 -0000 [thread overview]
Message-ID: <200802171255.02801.ghost@cs.msu.su> (raw)
In-Reply-To: <18357.3708.628053.809241@kahikatea.snap.net.nz>
On Friday 15 February 2008 07:01:00 Nick Roberts wrote:
> > Can you please resend a new complete patch, with a ChangeLog, and I will
> > review it. It's much easier that way for me to make sure that what I
> > think you are proposing is indeed what you are proposing to commit.
>
> --
> Nick http://www.inet.net.nz/~nickrob
>
>
> 2008-02-15 Nick Roberts <nickrob@snap.net.nz>
>
> * breakpoint.c (print_one_breakpoint_location): Revert Enb field
> to old format. Discard breakpoint address if shared library is
> unloaded.
> (breakpoint_1): Adjust formatting of table header accordingly.
>
>
>
> *** breakpoint.c 15 Feb 2008 16:52:37 +1300 1.302
> --- breakpoint.c 15 Feb 2008 16:55:43 +1300
> *************** print_one_breakpoint_location (struct br
> *** 3426,3448 ****
> /* 4 */
> annotate_field (3);
> if (part_of_multiple)
> ! ui_out_field_string (uiout, "enabled",
> ! loc->shlib_disabled
> ! ? (loc->enabled ? "y(p)" : "n(p)")
> ! : (loc->enabled ? "y" : "n"));
> else
> ! {
> ! 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;
> ! ui_out_field_fmt (uiout, "enabled", "%c%s",
> ! bpenables[(int) b->enable_state],
> ! pending ? "(p)" : "");
> ! if (!pending)
> ! ui_out_spaces (uiout, 3);
> ! }
>
>
> /* 5 and 6 */
> --- 3426,3436 ----
> /* 4 */
> 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);
>
>
> /* 5 and 6 */
> *************** print_one_breakpoint_location (struct br
> *** 3553,3562 ****
> if (addressprint)
> {
> annotate_field (4);
> ! if (b->loc == NULL)
> ! ui_out_field_string (uiout, "addr", "<PENDING>");
> ! else if (header_of_multiple)
> ui_out_field_string (uiout, "addr", "<MULTIPLE>");
> else
> ui_out_field_core_addr (uiout, "addr", loc->address);
> }
> --- 3541,3550 ----
> if (addressprint)
> {
> annotate_field (4);
> ! 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);
> }
> *************** breakpoint_1 (int bnum, int allflag)
> *** 3781,3787 ****
> 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)
> --- 3769,3775 ----
> 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)
Did you run the testsuite with this patch? I'm getting the following test failures
if the patch is applied:
FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after setting on all)
I did not run the entire testsuite, only gdb.cp directory, so there maybe
be more.
While looking on the patch I've noticed a pre-existing problem -- say
we create a pending breakpoint of a function called foo. Then 'info break'
will say the breakpoint is on 'foo'. After the breakpoint is resolved,
info break will mention both the function name and the source line.
If the library is unloaded, then info break will only mention source line ---
even though breakpoint's address_string actually refers to function.
I don't think we should bother to fix this right now, as the code in
question seems rather old.
Other than that, I did not noticed any issues, so I presume the patch can
go in as soon as the test failures are handled.
- Volodya
next prev parent reply other threads:[~2008-02-17 9:56 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
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 [this message]
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=200802171255.02801.ghost@cs.msu.su \
--to=ghost@cs.msu.su \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=nickrob@snap.net.nz \
/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