static struct mi_interp *
as_mi_interp (struct interp *interp)
{
- if (ui_out_is_mi_like_p (interp_ui_out (interp)))
+ if (interp_ui_out (interp)->is_mi_like_p ())
return (struct mi_interp *) interp_data (interp);
return NULL;
}
mi_new_thread (struct thread_info *t)
{
struct inferior *inf = find_inferior_ptid (t->ptid);
- struct switch_thru_all_uis state;
gdb_assert (inf);
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_thread_exit (struct thread_info *t, int silent)
{
- struct switch_thru_all_uis state;
-
if (silent)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
mi_record_changed (struct inferior *inferior, int started, const char *method,
const char *format)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_inferior_added (struct inferior *inf)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct interp *interp;
struct mi_interp *mi;
static void
mi_inferior_appeared (struct inferior *inf)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_inferior_exit (struct inferior *inf)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_inferior_removed (struct inferior *inf)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_on_signal_received (enum gdb_signal siggnal)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = find_mi_interp ();
static void
mi_on_end_stepping_range (void)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = find_mi_interp ();
static void
mi_on_signal_exited (enum gdb_signal siggnal)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = find_mi_interp ();
static void
mi_on_exited (int exitstatus)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = find_mi_interp ();
static void
mi_on_no_history (void)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = find_mi_interp ();
enum async_reply_reason reason;
reason = thread_fsm_async_reply_reason (tp->thread_fsm);
- ui_out_field_string (mi_uiout, "reason",
- async_reason_lookup (reason));
+ mi_uiout->field_string ("reason", async_reason_lookup (reason));
}
print_stop_event (mi_uiout);
if (should_print_stop_to_console (console_interp, tp))
print_stop_event (mi->cli_uiout);
- ui_out_field_int (mi_uiout, "thread-id", tp->global_num);
+ mi_uiout->field_int ("thread-id", tp->global_num);
if (non_stop)
{
struct cleanup *back_to = make_cleanup_ui_out_list_begin_end
(mi_uiout, "stopped-threads");
- ui_out_field_int (mi_uiout, NULL, tp->global_num);
+ mi_uiout->field_int (NULL, tp->global_num);
do_cleanups (back_to);
}
else
- ui_out_field_string (mi_uiout, "stopped-threads", "all");
+ mi_uiout->field_string ("stopped-threads", "all");
core = target_core_of_thread (inferior_ptid);
if (core != -1)
- ui_out_field_int (mi_uiout, "core", core);
+ mi_uiout->field_int ("core", core);
}
fputs_unfiltered ("*stopped", mi->raw_stdout);
static void
mi_on_normal_stop (struct bpstats *bs, int print_frame)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
if (as_mi_interp (top_level_interpreter ()) == NULL)
continue;
static void
mi_traceframe_changed (int tfnum, int tpnum)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.traceframe)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_tsv_created (const struct trace_state_variable *tsv)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_tsv_deleted (const struct trace_state_variable *tsv)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_tsv_modified (const struct trace_state_variable *tsv)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *mi_uiout;
fprintf_unfiltered (mi->event_channel,
"tsv-modified");
- ui_out_redirect (mi_uiout, mi->event_channel);
+ mi_uiout->redirect (mi->event_channel);
- ui_out_field_string (mi_uiout, "name", tsv->name);
- ui_out_field_string (mi_uiout, "initial",
+ mi_uiout->field_string ("name", tsv->name);
+ mi_uiout->field_string ("initial",
plongest (tsv->initial_value));
if (tsv->value_known)
- ui_out_field_string (mi_uiout, "current", plongest (tsv->value));
+ mi_uiout->field_string ("current", plongest (tsv->value));
- ui_out_redirect (mi_uiout, NULL);
+ mi_uiout->redirect (NULL);
gdb_flush (mi->event_channel);
static void
mi_breakpoint_created (struct breakpoint *b)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.breakpoint)
return;
if (b->number <= 0)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *mi_uiout;
break if anything is output to mi_uiout prior to calling the
breakpoint_created notifications. So, we use
ui_out_redirect. */
- ui_out_redirect (mi_uiout, mi->event_channel);
+ mi_uiout->redirect (mi->event_channel);
TRY
{
gdb_breakpoint_query (mi_uiout, b->number, NULL);
}
END_CATCH
- ui_out_redirect (mi_uiout, NULL);
+ mi_uiout->redirect (NULL);
gdb_flush (mi->event_channel);
static void
mi_breakpoint_deleted (struct breakpoint *b)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.breakpoint)
return;
if (b->number <= 0)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_breakpoint_modified (struct breakpoint *b)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.breakpoint)
return;
if (b->number <= 0)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
break if anything is output to mi_uiout prior to calling the
breakpoint_created notifications. So, we use
ui_out_redirect. */
- ui_out_redirect (mi->mi_uiout, mi->event_channel);
+ mi->mi_uiout->redirect (mi->event_channel);
TRY
{
gdb_breakpoint_query (mi->mi_uiout, b->number, NULL);
}
END_CATCH
- ui_out_redirect (mi->mi_uiout, NULL);
+ mi->mi_uiout->redirect (NULL);
gdb_flush (mi->event_channel);
mi_output_running_pid (struct thread_info *info, void *arg)
{
ptid_t *ptid = (ptid_t *) arg;
- struct switch_thru_all_uis state;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
mi_on_resume (ptid_t ptid)
{
struct thread_info *tp = NULL;
- struct switch_thru_all_uis state;
if (ptid_equal (ptid, minus_one_ptid) || ptid_is_pid (ptid))
tp = inferior_thread ();
if (tp->control.in_infcall)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct cleanup *old_chain;
static void
mi_solib_loaded (struct so_list *solib)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *uiout;
fprintf_unfiltered (mi->event_channel, "library-loaded");
- ui_out_redirect (uiout, mi->event_channel);
+ uiout->redirect (mi->event_channel);
- ui_out_field_string (uiout, "id", solib->so_original_name);
- ui_out_field_string (uiout, "target-name", solib->so_original_name);
- ui_out_field_string (uiout, "host-name", solib->so_name);
- ui_out_field_int (uiout, "symbols-loaded", solib->symbols_loaded);
+ uiout->field_string ("id", solib->so_original_name);
+ uiout->field_string ("target-name", solib->so_original_name);
+ uiout->field_string ("host-name", solib->so_name);
+ uiout->field_int ("symbols-loaded", solib->symbols_loaded);
if (!gdbarch_has_global_solist (target_gdbarch ()))
{
- ui_out_field_fmt (uiout, "thread-group", "i%d",
- current_inferior ()->num);
+ uiout->field_fmt ("thread-group", "i%d", current_inferior ()->num);
}
- ui_out_redirect (uiout, NULL);
+ uiout->redirect (NULL);
gdb_flush (mi->event_channel);
static void
mi_solib_unloaded (struct so_list *solib)
{
- struct switch_thru_all_uis state;
-
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *uiout;
fprintf_unfiltered (mi->event_channel, "library-unloaded");
- ui_out_redirect (uiout, mi->event_channel);
+ uiout->redirect (mi->event_channel);
- ui_out_field_string (uiout, "id", solib->so_original_name);
- ui_out_field_string (uiout, "target-name", solib->so_original_name);
- ui_out_field_string (uiout, "host-name", solib->so_name);
+ uiout->field_string ("id", solib->so_original_name);
+ uiout->field_string ("target-name", solib->so_original_name);
+ uiout->field_string ("host-name", solib->so_name);
if (!gdbarch_has_global_solist (target_gdbarch ()))
{
- ui_out_field_fmt (uiout, "thread-group", "i%d",
- current_inferior ()->num);
+ uiout->field_fmt ("thread-group", "i%d", current_inferior ()->num);
}
- ui_out_redirect (uiout, NULL);
+ uiout->redirect (NULL);
gdb_flush (mi->event_channel);
static void
mi_command_param_changed (const char *param, const char *value)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.cmd_param_changed)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *mi_uiout;
fprintf_unfiltered (mi->event_channel, "cmd-param-changed");
- ui_out_redirect (mi_uiout, mi->event_channel);
+ mi_uiout->redirect (mi->event_channel);
- ui_out_field_string (mi_uiout, "param", param);
- ui_out_field_string (mi_uiout, "value", value);
+ mi_uiout->field_string ("param", param);
+ mi_uiout->field_string ("value", value);
- ui_out_redirect (mi_uiout, NULL);
+ mi_uiout->redirect (NULL);
gdb_flush (mi->event_channel);
mi_memory_changed (struct inferior *inferior, CORE_ADDR memaddr,
ssize_t len, const bfd_byte *myaddr)
{
- struct switch_thru_all_uis state;
-
if (mi_suppress_notification.memory)
return;
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *mi_uiout;
fprintf_unfiltered (mi->event_channel, "memory-changed");
- ui_out_redirect (mi_uiout, mi->event_channel);
+ mi_uiout->redirect (mi->event_channel);
- ui_out_field_fmt (mi_uiout, "thread-group", "i%d", inferior->num);
- ui_out_field_core_addr (mi_uiout, "addr", target_gdbarch (), memaddr);
- ui_out_field_fmt (mi_uiout, "len", "%s", hex_string (len));
+ mi_uiout->field_fmt ("thread-group", "i%d", inferior->num);
+ mi_uiout->field_core_addr ("addr", target_gdbarch (), memaddr);
+ mi_uiout->field_fmt ("len", "%s", hex_string (len));
/* Append 'type=code' into notification if MEMADDR falls in the range of
sections contain code. */
sec->the_bfd_section);
if (flags & SEC_CODE)
- ui_out_field_string (mi_uiout, "type", "code");
+ mi_uiout->field_string ("type", "code");
}
- ui_out_redirect (mi_uiout, NULL);
+ mi_uiout->redirect (NULL);
gdb_flush (mi->event_channel);
static void
mi_user_selected_context_changed (user_selected_what selection)
{
- struct switch_thru_all_uis state;
struct thread_info *tp;
/* Don't send an event if we're responding to an MI command. */
tp = find_thread_ptid (inferior_ptid);
- SWITCH_THRU_ALL_UIS (state)
+ SWITCH_THRU_ALL_UIS ()
{
struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
struct ui_out *mi_uiout;
mi_uiout = interp_ui_out (top_level_interpreter ());
- ui_out_redirect (mi_uiout, mi->event_channel);
+ mi_uiout->redirect (mi->event_channel);
old_chain = make_cleanup_ui_out_redirect_pop (mi_uiout);