Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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