error (_("Garbage '%s' follows condition"), cond_string);
}
+/* See breakpoint.h. */
+
+void
+notify_breakpoint_modified (breakpoint *b)
+{
+ interps_notify_breakpoint_modified (b);
+ gdb::observers::breakpoint_modified.notify (b);
+}
+
void
set_breakpoint_condition (struct breakpoint *b, const char *exp,
int from_tty, bool force)
}
mark_breakpoint_modified (b);
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
/* See breakpoint.h. */
validate_commands_for_breakpoint (b, commands.get ());
b->commands = std::move (commands);
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
/* Set the internal `silent' flag on the breakpoint. Note that this
b->silent = silent;
if (old_silent != silent)
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
/* See breakpoint.h. */
b->thread = thread;
if (old_thread != thread)
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
/* See breakpoint.h. */
b->task = task;
if (old_task != task)
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
static void
{
validate_commands_for_breakpoint (b, cmd.get ());
b->commands = cmd;
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
});
}
{
/* See also: disable_breakpoints_in_shlibs. */
bl->shlib_disabled = 1;
- gdb::observers::breakpoint_modified.notify (bl->owner);
+ notify_breakpoint_modified (bl->owner);
if (!*disabled_breaks)
{
gdb_printf (tmp_error_stream,
bs->stop = false;
/* Increase the hit count even though we don't stop. */
++(b->hit_count);
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
return;
}
b->enable_state = bp_disabled;
removed_any = 1;
}
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
if (b->silent)
bs->print = false;
bs->commands = b->commands;
loc->inserted = 0;
/* This may cause duplicate notifications for the same breakpoint. */
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
if (!disabled_shlib_breaks)
{
}
if (bp_modified)
- gdb::observers::breakpoint_modified.notify (&b);
+ notify_breakpoint_modified (&b);
}
}
tracepoint &t = gdb::checked_static_cast<tracepoint &> (b);
t.number_on_target = b.number;
if (bp_location_downloaded)
- gdb::observers::breakpoint_modified.notify (&b);
+ notify_breakpoint_modified (&b);
}
}
}
if (!locations_are_equal (existing_locations, b->locations ()))
- gdb::observers::breakpoint_modified.notify (b);
+ notify_breakpoint_modified (b);
}
/* Find the SaL locations corresponding to the given LOCSPEC.
"crossings of breakpoint %d."),
count, bptnum);
}
- gdb::observers::breakpoint_modified.notify (&b);
+ notify_breakpoint_modified (&b);
return;
}
}
update_global_location_list (UGLL_DONT_INSERT);
- gdb::observers::breakpoint_modified.notify (loc->owner);
+ notify_breakpoint_modified (loc->owner);
}
/* Calculates LOC_NUM for LOC by traversing the bp_location chain of LOC's
target_disable_tracepoint (loc);
update_global_location_list (UGLL_DONT_INSERT);
- gdb::observers::breakpoint_modified.notify (loc->owner);
+ notify_breakpoint_modified (loc->owner);
}
/* Enable or disable a range of breakpoint locations. BP_NUM is the
update_global_location_list (UGLL_DONT_INSERT);
- gdb::observers::breakpoint_modified.notify (bpt);
+ notify_breakpoint_modified (bpt);
}
/* Enable or disable the breakpoint(s) or breakpoint location(s)
bpt->enable_count = count;
update_global_location_list (UGLL_MAY_INSERT);
- gdb::observers::breakpoint_modified.notify (bpt);
+ notify_breakpoint_modified (bpt);
}
trace_pass_set_count (struct tracepoint *tp, int count, int from_tty)
{
tp->pass_count = count;
- gdb::observers::breakpoint_modified.notify (tp);
+ notify_breakpoint_modified (tp);
if (from_tty)
gdb_printf (_("Setting tracepoint %d's passcount to %d\n"),
tp->number, count);
static void mi_insert_notify_hooks (void);
static void mi_remove_notify_hooks (void);
-static void mi_breakpoint_modified (struct breakpoint *b);
static void mi_command_param_changed (const char *param, const char *value);
static void mi_memory_changed (struct inferior *inf, CORE_ADDR memaddr,
ssize_t len, const bfd_byte *myaddr);
gdb_flush (this->event_channel);
}
-/* Emit notification about modified breakpoint. */
-
-static void
-mi_breakpoint_modified (struct breakpoint *b)
+void
+mi_interp::on_breakpoint_modified (breakpoint *b)
{
if (mi_suppress_notification.breakpoint)
return;
if (b->number <= 0)
return;
- SWITCH_THRU_ALL_UIS ()
- {
- struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-
- if (mi == NULL)
- continue;
-
- target_terminal::scoped_restore_terminal_state term_state;
- target_terminal::ours_for_output ();
- gdb_printf (mi->event_channel,
- "breakpoint-modified");
- mi_print_breakpoint_for_event (mi, b);
+ target_terminal::scoped_restore_terminal_state term_state;
+ target_terminal::ours_for_output ();
+ gdb_printf (this->event_channel, "breakpoint-modified");
+ mi_print_breakpoint_for_event (this, b);
- gdb_flush (mi->event_channel);
- }
+ gdb_flush (this->event_channel);
}
static void
interp_factory_register (INTERP_MI4, mi_interp_factory);
interp_factory_register (INTERP_MI, mi_interp_factory);
- gdb::observers::breakpoint_modified.attach (mi_breakpoint_modified,
- "mi-interp");
gdb::observers::command_param_changed.attach (mi_command_param_changed,
"mi-interp");
gdb::observers::memory_changed.attach (mi_memory_changed, "mi-interp");