Re: (gdb-6.8) Discard breakpoint address if shared library is unloaded

Nick Roberts
2008-02-15T04:01:39Z

> 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)