Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Jeff Johnston <jjohnstn@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA]: Fix for pending breakpoints in manually loaded/unloaded shlibs
Date: Wed, 18 Aug 2004 13:56:00 -0000	[thread overview]
Message-ID: <20040818135621.GA26257@nevyn.them.org> (raw)
In-Reply-To: <411A7D97.50104@redhat.com>

On Wed, Aug 11, 2004 at 04:12:07PM -0400, Jeff Johnston wrote:
> Ok?

Sorry to keep picking nits; while we discuss the issue of the new
observer I went over the patch again for minor problems.

> +/* Disable any breakpoints that are in in an unloaded shared library.  Only
> +   apply to enabled breakpoints, disabled ones can just stay disabled.  */
> +
> +void
> +disable_breakpoints_in_unloaded_shlib (struct so_list *solib)
> +{
> +  struct breakpoint *b;
> +  int disabled_shlib_breaks = 0;
> +
> +  /* See also: insert_breakpoints, under DISABLE_UNSETTABLE_BREAK. */

Two spaces after a period, please.

> +  ALL_BREAKPOINTS (b)
> +  {
> +#if defined (PC_SOLIB)

I think someone pointed out that you've #ifdef'd out the entire body of
this loop.  Might as well include the whole loop.  The #ifdef is nasty,
but that's a preexisting problem.

> +    if ((b->loc->loc_type == bp_loc_hardware_breakpoint
> +	|| b->loc->loc_type == bp_loc_software_breakpoint)
> +	&& breakpoint_enabled (b) 
> +	&& !b->loc->duplicate)
> +      {
> +	char *so_name = PC_SOLIB (b->loc->address);

While I'm ranting about preexisting problems, it would be nice if
PC_SOLIB returned the solib, instead of just its name... but enh.

> +	if (so_name 
> +	    && !strcmp (so_name, solib->so_name))
> +          {
> +	    b->enable_state = bp_shlib_disabled;
> +	    /* At this point, we cannot rely on remove_breakpoint
> +	       succeeding so we must mark the breakpoint as not inserted
> +	       to prevent future errors occurring in remove_breakpoints.  */
> +	    b->loc->inserted = 0;
> +	    if (!disabled_shlib_breaks)
> +	      {
> +		target_terminal_ours_for_output ();
> +		warning ("Temporarily disabling unloaded shared library breakpoints:");
> +	      }
> +	    disabled_shlib_breaks = 1;
> +	    warning ("breakpoint #%d ", b->number);

I think you're missing a space after the colon, in the first warning.
Also, this use of multiple warning() statements is neither i18n
friendly nor MI/GUI friendly - you may get a separate dialog box for
each.  I believe other places do this with sprintf; still not 100% i18n
friendly, but avoids the MI/GUI problems.  I can't find an example
offhand.

-- 
Daniel Jacobowitz


  reply	other threads:[~2004-08-18 13:56 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-10 19:09 Jeff Johnston
2004-08-10 19:45 ` Kevin Buettner
2004-08-11  4:07 ` Eli Zaretskii
2004-08-11 15:58   ` Jeff Johnston
2004-08-11 16:58     ` Andrew Cagney
2004-08-11 17:59       ` Eli Zaretskii
2004-08-11 20:42         ` Andrew Cagney
2004-08-11 20:47           ` Daniel Jacobowitz
2004-08-11 22:19             ` Andrew Cagney
2004-08-12 12:58               ` Daniel Jacobowitz
2004-08-12 13:16                 ` New observer objfile_mapped; was Andrew Cagney
2004-08-12 13:18                   ` Daniel Jacobowitz
2004-08-12  3:45           ` [RFA]: Fix for pending breakpoints in manually loaded/unloaded shlibs Eli Zaretskii
2004-08-12 12:10             ` Andrew Cagney
2004-08-12 18:49               ` Eli Zaretskii
2004-08-12 20:44                 ` Andrew Cagney
2004-08-14 11:50                   ` Eli Zaretskii
2004-08-18 13:45                     ` Daniel Jacobowitz
2004-08-19  3:57                       ` Eli Zaretskii
2004-08-11  8:09 ` Michael Chastain
2004-08-11 15:42   ` Jeff Johnston
2004-08-12 13:05     ` Michael Chastain
2004-08-12 13:33     ` Michael Chastain
2004-08-12 17:47       ` Jeff Johnston
2004-08-12 18:59         ` Michael Chastain
2004-08-12 20:23           ` Jeff Johnston
2004-08-11 17:12 ` Daniel Jacobowitz
2004-08-11 20:12   ` Jeff Johnston
2004-08-18 13:56     ` Daniel Jacobowitz [this message]
2004-08-18 19:22       ` Jeff Johnston
2004-08-18 19:39         ` Daniel Jacobowitz
2004-08-18 20:03           ` Jeff Johnston
2004-08-19  4:01             ` Eli Zaretskii
2004-09-01 15:15               ` Andrew Cagney
2004-09-01 18:01                 ` Jeff Johnston
2004-09-01 19:30                   ` Michael Chastain
2004-09-01 20:44                     ` Jeff Johnston
2004-09-01 20:59                       ` Michael Chastain
2004-09-01 23:27                         ` Jeff Johnston
2004-09-02  3:54                 ` Eli Zaretskii
2004-08-23 21:33             ` Jeff Johnston
2004-08-23 22:09               ` Michael Chastain
2004-08-23 22:35                 ` Jeff Johnston
2004-08-24  2:26                   ` Michael Chastain
2004-08-24 15:51                     ` Jeff Johnston
2004-08-24 16:04                       ` Michael Chastain
2004-08-12  2:48 ` Andrew Cagney
2004-08-12  3:54   ` Eli Zaretskii

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=20040818135621.GA26257@nevyn.them.org \
    --to=drow@false.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=jjohnstn@redhat.com \
    /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