Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 2/6] allow to suppress more mi notification
Date: Thu, 26 Jul 2012 15:30:00 -0000	[thread overview]
Message-ID: <5011628A.3000707@redhat.com> (raw)
In-Reply-To: <1343146252-22558-3-git-send-email-yao@codesourcery.com>

On 07/24/2012 05:10 PM, Yao Qi wrote:
> Hi,
> 'mi_suppress_breakpoint_notifications' is used to suppress mi
> breakpoint notifications.  This patch is to change this variable
> to an array so that multiple mi notifications can be suppressed.
> The following patch will use it to suppress other MI notifications.
> 
> gdb:
> 
> 2012-07-24  Yao Qi  <yao@codesourcery.com>
> 
> 	* mi/mi-interp.c: Remove mi_suppress_breakpoint_notifications.
> 	Define array mi_suppress_notification.
> 	(mi_breakpoint_created): Update.
> 	(mi_breakpoint_deleted): Likewise.
> 	(mi_breakpoint_modified): Likewise.
> 	* mi/mi-main.c (mi_cmd_execute): Likewise.
> 	* mi/mi-main.h (enum MI_SUPRESS_NOTIFICATION): New.
> ---
>  gdb/mi/mi-interp.c |   12 ++++++------
>  gdb/mi/mi-main.c   |    6 ++++--
>  gdb/mi/mi-main.h   |    4 +++-
>  3 files changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
> index b487136..885d08b 100644
> --- a/gdb/mi/mi-interp.c
> +++ b/gdb/mi/mi-interp.c
> @@ -501,10 +501,10 @@ mi_about_to_proceed (void)
>    mi_proceeded = 1;
>  }
>  
> -/* When non-zero, no MI notifications will be emitted in
> -   response to breakpoint change observers.  */
> +/* When the element is non-zero, no MI notifications will be emitted in
> +   response to the corresponding observers.  */
>  
> -int mi_suppress_breakpoint_notifications = 0;
> +int mi_suppress_notification[] = { 0 };
>  
>  /* Emit notification about a created breakpoint.  */
>  
> @@ -515,7 +515,7 @@ mi_breakpoint_created (struct breakpoint *b)
>    struct ui_out *mi_uiout = interp_ui_out (top_level_interpreter ());
>    volatile struct gdb_exception e;
>  
> -  if (mi_suppress_breakpoint_notifications)
> +  if (mi_suppress_notification[MI_SUPPRESS_BREAKPOINT])
>      return;
>  
>    if (b->number <= 0)
> @@ -546,7 +546,7 @@ mi_breakpoint_deleted (struct breakpoint *b)
>  {
>    struct mi_interp *mi = top_level_interpreter_data ();
>  
> -  if (mi_suppress_breakpoint_notifications)
> +  if (mi_suppress_notification[MI_SUPPRESS_BREAKPOINT])
>      return;
>  
>    if (b->number <= 0)
> @@ -569,7 +569,7 @@ mi_breakpoint_modified (struct breakpoint *b)
>    struct ui_out *mi_uiout = interp_ui_out (top_level_interpreter ());
>    volatile struct gdb_exception e;
>  
> -  if (mi_suppress_breakpoint_notifications)
> +  if (mi_suppress_notification[MI_SUPPRESS_BREAKPOINT])
>      return;
>  
>    if (b->number <= 0)
> diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
> index dfb4892..0ae867d 100644
> --- a/gdb/mi/mi-main.c
> +++ b/gdb/mi/mi-main.c
> @@ -2099,8 +2099,10 @@ mi_cmd_execute (struct mi_parse *parse)
>  
>    if (strncmp (parse->command, "break-", sizeof ("break-") - 1 ) == 0)
>      {
> -      make_cleanup_restore_integer (&mi_suppress_breakpoint_notifications);
> -      mi_suppress_breakpoint_notifications = 1;
> +      int *p = &mi_suppress_notification[MI_SUPPRESS_BREAKPOINT];
> +
> +      make_cleanup_restore_integer (p);
> +      *p = 1;
>      }
>  
>    if (parse->cmd->argv_func != NULL)
> diff --git a/gdb/mi/mi-main.h b/gdb/mi/mi-main.h
> index beac2cd..1c7bf00 100644
> --- a/gdb/mi/mi-main.h
> +++ b/gdb/mi/mi-main.h
> @@ -32,7 +32,9 @@ extern char *current_token;
>  
>  extern int running_result_record_printed;
>  extern int mi_proceeded;
> -extern int mi_suppress_breakpoint_notifications;
> +
> +enum MI_SUPRESS_NOTIFICATION { MI_SUPPRESS_BREAKPOINT };
> +extern int mi_suppress_notification[];
>  

Quite frankly, I don't see how putting these in an array is better than
a separate global for each.  The memory used is the same, and with separate
globals, it's a little easier to debug from a top gdb (just print mi_suppress_<TAB> to
see the list of possibilities, etc.)  Are you planning on doing something over the
whole array, that is abstracted from the semantics of each element of the array?

-- 
Pedro Alves


  parent reply	other threads:[~2012-07-26 15:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-24 16:11 [RFC 0/6] MI notification of command option change Yao Qi
2012-07-24 16:11 ` [PATCH 6/6] new add_setshow_string_cmd_with_notif and trace-notes Yao Qi
2012-07-24 20:54   ` Tom Tromey
2012-07-24 16:11 ` [PATCH 3/6] attach to command_option-changed observer Yao Qi
2012-07-24 17:10   ` Eli Zaretskii
2012-07-24 20:47   ` Tom Tromey
2012-07-26 12:47     ` Yao Qi
2012-07-26 13:59       ` Tom Tromey
2012-07-26 15:31   ` Pedro Alves
2012-07-24 16:11 ` [PATCH 1/6] new observer command_option_changed Yao Qi
2012-07-24 20:39   ` Tom Tromey
2012-07-25  3:56     ` Yao Qi
2012-07-25 14:44       ` Tom Tromey
2012-07-26 15:21         ` Pedro Alves
2012-07-25 14:32   ` Tom Tromey
2012-07-26  8:55     ` Yao Qi
2012-07-24 16:11 ` [PATCH 4/6] new add_setshow_enum_cmd_with_notif and scheduler-locking Yao Qi
2012-07-24 20:50   ` Tom Tromey
2012-07-26 15:41     ` Pedro Alves
2012-07-24 16:11 ` [PATCH 2/6] allow to suppress more mi notification Yao Qi
2012-07-24 20:40   ` Tom Tromey
2012-07-26 15:30   ` Pedro Alves [this message]
2012-07-27  2:57     ` Yao Qi
2012-07-27 13:27       ` Pedro Alves
2012-07-24 16:12 ` [PATCH 5/6] new add_setshow_boolean_cmd_with_notify and circular-trace-buffer Yao Qi
2012-07-24 20:53   ` Tom Tromey

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=5011628A.3000707@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.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