summaryrefslogtreecommitdiff
path: root/gdb/annotate.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/annotate.c')
-rw-r--r--gdb/annotate.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/annotate.c b/gdb/annotate.c
index 1c235a568e5..4508ad8cf06 100644
--- a/gdb/annotate.c
+++ b/gdb/annotate.c
@@ -40,6 +40,8 @@ void (*annotate_signalled_hook) PARAMS ((void));
void (*annotate_signal_hook) PARAMS ((void));
void (*annotate_exited_hook) PARAMS ((void));
+static int ignore_count_changed = 0;
+
static void
print_value_flags (t)
struct type *t;
@@ -57,9 +59,24 @@ breakpoints_changed ()
{
target_terminal_ours ();
printf_unfiltered ("\n\032\032breakpoints-invalid\n");
+ if (ignore_count_changed)
+ ignore_count_changed = 0; /* Avoid multiple break annotations. */
}
}
+/* The GUI needs to be informed of ignore_count changes, but we don't
+ want to provide successive multiple breakpoints-invalid messages
+ that are all caused by the fact that the ignore count is changing
+ (which could keep the GUI very busy). One is enough, after the
+ target actually "stops". */
+
+void
+annotate_ignore_count_change (void)
+{
+ if (annotation_level > 1)
+ ignore_count_changed = 1;
+}
+
void
annotate_breakpoint (num)
int num;
@@ -109,6 +126,11 @@ annotate_stopped ()
if (annotation_level > 1)
printf_filtered ("\n\032\032stopped\n");
}
+ if (annotation_level > 1 && ignore_count_changed)
+ {
+ ignore_count_changed = 0;
+ breakpoints_changed ();
+ }
}
void