aboutsummaryrefslogtreecommitdiff
path: root/gdb/mi
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/mi')
-rw-r--r--gdb/mi/mi-cmd-break.c2
-rw-r--r--gdb/mi/mi-cmd-disas.c1
-rw-r--r--gdb/mi/mi-cmd-env.c7
-rw-r--r--gdb/mi/mi-cmd-file.c4
-rw-r--r--gdb/mi/mi-cmd-stack.c6
-rw-r--r--gdb/mi/mi-cmd-var.c15
-rw-r--r--gdb/mi/mi-interp.c8
-rw-r--r--gdb/mi/mi-main.c37
-rw-r--r--gdb/mi/mi-symbol-cmds.c1
9 files changed, 62 insertions, 19 deletions
diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c
index fee8f73..c98330d 100644
--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -50,7 +50,7 @@ static void
breakpoint_notify (struct breakpoint *b)
{
if (mi_can_breakpoint_notify)
- gdb_breakpoint_query (uiout, b->number, NULL);
+ gdb_breakpoint_query (current_uiout, b->number, NULL);
}
enum bp_type
diff --git a/gdb/mi/mi-cmd-disas.c b/gdb/mi/mi-cmd-disas.c
index 28e84f6..6cc0a83 100644
--- a/gdb/mi/mi-cmd-disas.c
+++ b/gdb/mi/mi-cmd-disas.c
@@ -55,6 +55,7 @@ void
mi_cmd_disassemble (char *command, char **argv, int argc)
{
struct gdbarch *gdbarch = get_current_arch ();
+ struct ui_out *uiout = current_uiout;
CORE_ADDR start;
int mode, disasm_flags;
diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c
index ad34aac..9676e83 100644
--- a/gdb/mi/mi-cmd-env.c
+++ b/gdb/mi/mi-cmd-env.c
@@ -69,6 +69,8 @@ env_execute_cli_command (const char *cmd, const char *args)
void
mi_cmd_env_pwd (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
+
if (argc > 0)
error (_("-environment-pwd: No arguments required"));
@@ -112,6 +114,7 @@ env_mod_path (char *dirname, char **which_path)
void
mi_cmd_env_path (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
char *exec_path;
char *env;
int reset = 0;
@@ -185,6 +188,7 @@ mi_cmd_env_path (char *command, char **argv, int argc)
void
mi_cmd_env_dir (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
int i;
int optind = 0;
int reset = 0;
@@ -257,7 +261,8 @@ mi_cmd_inferior_tty_show (char *command, char **argv, int argc)
error (_("-inferior-tty-show: Usage: No args"));
if (inferior_io_terminal)
- ui_out_field_string (uiout, "inferior_tty_terminal", inferior_io_terminal);
+ ui_out_field_string (current_uiout,
+ "inferior_tty_terminal", inferior_io_terminal);
}
void
diff --git a/gdb/mi/mi-cmd-file.c b/gdb/mi/mi-cmd-file.c
index 0150ca0..22cb995 100644
--- a/gdb/mi/mi-cmd-file.c
+++ b/gdb/mi/mi-cmd-file.c
@@ -34,6 +34,7 @@ void
mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc)
{
struct symtab_and_line st;
+ struct ui_out *uiout = current_uiout;
if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv))
error (_("-file-list-exec-source-file: Usage: No args"));
@@ -67,6 +68,8 @@ static void
print_partial_file_name (const char *filename, const char *fullname,
void *ignore)
{
+ struct ui_out *uiout = current_uiout;
+
ui_out_begin (uiout, ui_out_type_tuple, NULL);
ui_out_field_string (uiout, "file", filename);
@@ -80,6 +83,7 @@ print_partial_file_name (const char *filename, const char *fullname,
void
mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct symtab *s;
struct objfile *objfile;
diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index ad20851..ccd6b04 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -78,7 +78,7 @@ mi_cmd_stack_list_frames (char *command, char **argv, int argc)
if (fi == NULL)
error (_("-stack-list-frames: Not enough frames in stack."));
- cleanup_stack = make_cleanup_ui_out_list_begin_end (uiout, "stack");
+ cleanup_stack = make_cleanup_ui_out_list_begin_end (current_uiout, "stack");
/* Now let;s print the frames up to frame_high, or until there are
frames in the stack. */
@@ -117,7 +117,7 @@ mi_cmd_stack_info_depth (char *command, char **argv, int argc)
i++, fi = get_prev_frame (fi))
QUIT;
- ui_out_field_int (uiout, "depth", i);
+ ui_out_field_int (current_uiout, "depth", i);
}
static enum print_values
@@ -166,6 +166,7 @@ mi_cmd_stack_list_args (char *command, char **argv, int argc)
struct frame_info *fi;
struct cleanup *cleanup_stack_args;
enum print_values print_values;
+ struct ui_out *uiout = current_uiout;
if (argc < 1 || argc > 3 || argc == 2)
error (_("-stack-list-arguments: Usage: "
@@ -249,6 +250,7 @@ list_args_or_locals (enum what_to_list what, int values, struct frame_info *fi)
static struct ui_stream *stb = NULL;
struct type *type;
char *name_of_result;
+ struct ui_out *uiout = current_uiout;
stb = ui_out_stream_new (uiout);
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index aee6224..c50f863 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -51,6 +51,7 @@ static void
print_varobj (struct varobj *var, enum print_values print_values,
int print_expression)
{
+ struct ui_out *uiout = current_uiout;
char *type;
int thread_id;
char *display_hint;
@@ -98,6 +99,7 @@ print_varobj (struct varobj *var, enum print_values print_values,
void
mi_cmd_var_create (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
CORE_ADDR frameaddr = 0;
struct varobj *var;
char *name;
@@ -167,6 +169,7 @@ mi_cmd_var_delete (char *command, char **argv, int argc)
int numdel;
int children_only_p = 0;
struct cleanup *old_cleanups;
+ struct ui_out *uiout = current_uiout;
if (argc < 1 || argc > 2)
error (_("-var-delete: Usage: [-c] EXPRESSION."));
@@ -244,6 +247,7 @@ mi_cmd_var_set_format (char *command, char **argv, int argc)
enum varobj_display_formats format;
struct varobj *var;
char *val;
+ struct ui_out *uiout = current_uiout;
if (argc != 2)
error (_("-var-set-format: Usage: NAME FORMAT."));
@@ -310,6 +314,7 @@ mi_cmd_var_set_frozen (char *command, char **argv, int argc)
void
mi_cmd_var_show_format (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
enum varobj_display_formats format;
struct varobj *var;
@@ -328,6 +333,7 @@ mi_cmd_var_show_format (char *command, char **argv, int argc)
void
mi_cmd_var_info_num_children (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
if (argc != 1)
@@ -394,6 +400,7 @@ mi_print_value_p (struct varobj *var, enum print_values print_values)
void
mi_cmd_var_list_children (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
VEC(varobj_p) *children;
struct varobj *child;
@@ -466,6 +473,7 @@ mi_cmd_var_list_children (char *command, char **argv, int argc)
void
mi_cmd_var_info_type (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
if (argc != 1)
@@ -480,6 +488,7 @@ mi_cmd_var_info_type (char *command, char **argv, int argc)
void
mi_cmd_var_info_path_expression (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
char *path_expr;
@@ -497,6 +506,7 @@ mi_cmd_var_info_path_expression (char *command, char **argv, int argc)
void
mi_cmd_var_info_expression (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
enum varobj_languages lang;
struct varobj *var;
@@ -515,6 +525,7 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc)
void
mi_cmd_var_show_attributes (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
int attr;
char *attstr;
struct varobj *var;
@@ -538,6 +549,7 @@ mi_cmd_var_show_attributes (char *command, char **argv, int argc)
void
mi_cmd_var_evaluate_expression (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
enum varobj_display_formats format;
@@ -606,6 +618,7 @@ mi_cmd_var_evaluate_expression (char *command, char **argv, int argc)
void
mi_cmd_var_assign (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct varobj *var;
char *expression, *val;
@@ -667,6 +680,7 @@ mi_cmd_var_update_iter (struct varobj *var, void *data_pointer)
void
mi_cmd_var_update (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct cleanup *cleanup;
char *name;
enum print_values print_values;
@@ -722,6 +736,7 @@ static void
varobj_update_one (struct varobj *var, enum print_values print_values,
int explicit)
{
+ struct ui_out *uiout = current_uiout;
struct cleanup *cleanup = NULL;
VEC (varobj_update_result) *changes;
varobj_update_result *r;
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index 7358b73..ac8c171 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -401,18 +401,18 @@ mi_on_normal_stop (struct bpstats *bs, int print_frame)
{
int core;
- if (uiout != mi_uiout)
+ if (current_uiout != mi_uiout)
{
/* The normal_stop function has printed frame information into
CLI uiout, or some other non-MI uiout. There's no way we
can extract proper fields from random uiout object, so we print
the frame again. In practice, this can only happen when running
a CLI command in MI. */
- struct ui_out *saved_uiout = uiout;
+ struct ui_out *saved_uiout = current_uiout;
- uiout = mi_uiout;
+ current_uiout = mi_uiout;
print_stack_frame (get_selected_frame (NULL), 0, SRC_AND_LOC);
- uiout = saved_uiout;
+ current_uiout = saved_uiout;
}
ui_out_field_int (mi_uiout, "thread-id",
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 1634778..04a1c97 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -117,7 +117,7 @@ mi_cmd_gdb_exit (char *command, char **argv, int argc)
if (current_token)
fputs_unfiltered (current_token, raw_stdout);
fputs_unfiltered ("^exit\n", raw_stdout);
- mi_out_put (uiout, raw_stdout);
+ mi_out_put (current_uiout, raw_stdout);
gdb_flush (raw_stdout);
/* FIXME: The function called is not yet a formal libgdb function. */
quit_force (NULL, FROM_TTY);
@@ -470,7 +470,7 @@ mi_cmd_thread_select (char *command, char **argv, int argc)
if (argc != 1)
error (_("-thread-select: USAGE: threadnum."));
- rc = gdb_thread_select (uiout, argv[0], &mi_error_message);
+ rc = gdb_thread_select (current_uiout, argv[0], &mi_error_message);
if (rc == GDB_RC_FAIL)
{
@@ -488,7 +488,7 @@ mi_cmd_thread_list_ids (char *command, char **argv, int argc)
if (argc != 0)
error (_("-thread-list-ids: No arguments required."));
- rc = gdb_list_thread_ids (uiout, &mi_error_message);
+ rc = gdb_list_thread_ids (current_uiout, &mi_error_message);
if (rc == GDB_RC_FAIL)
{
@@ -503,7 +503,7 @@ mi_cmd_thread_info (char *command, char **argv, int argc)
if (argc != 0 && argc != 1)
error (_("Invalid MI command"));
- print_thread_info (uiout, argv[0], -1);
+ print_thread_info (current_uiout, argv[0], -1);
}
struct collect_cores_data
@@ -550,6 +550,7 @@ static int
print_one_inferior (struct inferior *inferior, void *xdata)
{
struct print_one_inferior_data *top_data = xdata;
+ struct ui_out *uiout = current_uiout;
if (VEC_empty (int, top_data->inferiors)
|| bsearch (&(inferior->pid), VEC_address (int, top_data->inferiors),
@@ -670,6 +671,7 @@ list_available_thread_groups (VEC (int) *ids, int recurse)
struct osdata *data;
struct osdata_item *item;
int ix_items;
+ struct ui_out *uiout = current_uiout;
/* This keeps a map from integer (pid) to VEC (struct osdata_item *)*
The vector contains information about all threads for the given pid.
@@ -787,6 +789,7 @@ list_available_thread_groups (VEC (int) *ids, int recurse)
void
mi_cmd_list_thread_groups (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct cleanup *back_to;
int available = 0;
int recurse = 0;
@@ -889,6 +892,7 @@ void
mi_cmd_data_list_register_names (char *command, char **argv, int argc)
{
struct gdbarch *gdbarch;
+ struct ui_out *uiout = current_uiout;
int regnum, numregs;
int i;
struct cleanup *cleanup;
@@ -940,6 +944,7 @@ void
mi_cmd_data_list_changed_registers (char *command, char **argv, int argc)
{
static struct regcache *this_regs = NULL;
+ struct ui_out *uiout = current_uiout;
struct regcache *prev_regs;
struct gdbarch *gdbarch;
int regnum, numregs, changed;
@@ -1044,6 +1049,7 @@ register_changed_p (int regnum, struct regcache *prev_regs,
void
mi_cmd_data_list_register_values (char *command, char **argv, int argc)
{
+ struct ui_out *uiout = current_uiout;
struct frame_info *frame;
struct gdbarch *gdbarch;
int regnum, numregs, format;
@@ -1110,6 +1116,7 @@ static void
get_register (struct frame_info *frame, int regnum, int format)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
+ struct ui_out *uiout = current_uiout;
CORE_ADDR addr;
enum lval_type lval;
static struct ui_stream *stb = NULL;
@@ -1229,6 +1236,7 @@ mi_cmd_data_evaluate_expression (char *command, char **argv, int argc)
struct value *val;
struct ui_stream *stb = NULL;
struct value_print_options opts;
+ struct ui_out *uiout = current_uiout;
stb = ui_out_stream_new (uiout);
@@ -1279,6 +1287,7 @@ void
mi_cmd_data_read_memory (char *command, char **argv, int argc)
{
struct gdbarch *gdbarch = get_current_arch ();
+ struct ui_out *uiout = current_uiout;
struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
CORE_ADDR addr;
long total_bytes;
@@ -1470,6 +1479,7 @@ void
mi_cmd_data_read_memory_bytes (char *command, char **argv, int argc)
{
struct gdbarch *gdbarch = get_current_arch ();
+ struct ui_out *uiout = current_uiout;
struct cleanup *cleanups;
CORE_ADDR addr;
LONGEST length;
@@ -1702,6 +1712,7 @@ mi_cmd_list_features (char *command, char **argv, int argc)
if (argc == 0)
{
struct cleanup *cleanup = NULL;
+ struct ui_out *uiout = current_uiout;
cleanup = make_cleanup_ui_out_list_begin_end (uiout, "features");
ui_out_field_string (uiout, NULL, "frozen-varobjs");
@@ -1727,6 +1738,7 @@ mi_cmd_list_target_features (char *command, char **argv, int argc)
if (argc == 0)
{
struct cleanup *cleanup = NULL;
+ struct ui_out *uiout = current_uiout;
cleanup = make_cleanup_ui_out_list_begin_end (uiout, "features");
if (target_can_async_p ())
@@ -1751,7 +1763,7 @@ mi_cmd_add_inferior (char *command, char **argv, int argc)
inf = add_inferior_with_spaces ();
- ui_out_field_fmt (uiout, "inferior", "i%d", inf->num);
+ ui_out_field_fmt (current_uiout, "inferior", "i%d", inf->num);
}
/* Callback used to find the first inferior other than the
@@ -1958,14 +1970,14 @@ mi_execute_command (char *cmd, int from_tty)
TRY_CATCH (result, RETURN_MASK_ALL)
{
- captured_mi_execute_command (uiout, command);
+ captured_mi_execute_command (current_uiout, command);
}
if (result.reason < 0)
{
/* The command execution failed and error() was called
somewhere. */
mi_print_exception (command->token, result);
- mi_out_rewind (uiout);
+ mi_out_rewind (current_uiout);
}
bpstat_do_actions ();
@@ -2177,22 +2189,25 @@ mi_load_progress (const char *section_name,
static char *previous_sect_name = NULL;
int new_section;
struct ui_out *saved_uiout;
+ struct ui_out *uiout;
/* This function is called through deprecated_show_load_progress
which means uiout may not be correct. Fix it for the duration
of this function. */
- saved_uiout = uiout;
+ saved_uiout = current_uiout;
if (current_interp_named_p (INTERP_MI)
|| current_interp_named_p (INTERP_MI2))
- uiout = mi_out_new (2);
+ current_uiout = mi_out_new (2);
else if (current_interp_named_p (INTERP_MI1))
- uiout = mi_out_new (1);
+ current_uiout = mi_out_new (1);
else if (current_interp_named_p (INTERP_MI3))
- uiout = mi_out_new (3);
+ current_uiout = mi_out_new (3);
else
return;
+ uiout = current_uiout;
+
update_threshold.tv_sec = 0;
update_threshold.tv_usec = 500000;
gettimeofday (&time_now, NULL);
diff --git a/gdb/mi/mi-symbol-cmds.c b/gdb/mi/mi-symbol-cmds.c
index 17ff8c3..81f2da1 100644
--- a/gdb/mi/mi-symbol-cmds.c
+++ b/gdb/mi/mi-symbol-cmds.c
@@ -37,6 +37,7 @@ mi_cmd_symbol_list_lines (char *command, char **argv, int argc)
struct symtab *s;
int i;
struct cleanup *cleanup_stack, *cleanup_tuple;
+ struct ui_out *uiout = current_uiout;
if (argc != 1)
error (_("-symbol-list-lines: Usage: SOURCE_FILENAME"));