This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 2/6] allow to suppress more mi notification


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[];
 
 #endif
 
-- 
1.7.7.6


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]