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
next prev 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