Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: Nick Roberts <nickrob@snap.net.nz>, ghost@cs.msu.su
Cc: gdb-patches@sourceware.org
Subject: Re: (gdb-6.8) Discard breakpoint address if shared library is unloaded
Date: Thu, 07 Feb 2008 06:38:00 -0000	[thread overview]
Message-ID: <20080207063817.GA3907@adacore.com> (raw)
In-Reply-To: <18343.45995.719252.980359@kahikatea.snap.net.nz>

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.

> Yes.  It was in my original patch but I seem to have lost it somehow in the
> intervening period.  I attach the updated patch.

Oh, good.

> 2008-02-05  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.

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:

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

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

-- 
Joel


  reply	other threads:[~2008-02-07  6:38 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 [this message]
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
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=20080207063817.GA3907@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=ghost@cs.msu.su \
    --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