/* MI Command Set - information commands.
- Copyright (C) 2011-2015 Free Software Foundation, Inc.
+ Copyright (C) 2011-2020 Free Software Foundation, Inc.
This file is part of GDB.
/* Implement the "-info-ada-exceptions" GDB/MI command. */
void
-mi_cmd_info_ada_exceptions (char *command, char **argv, int argc)
+mi_cmd_info_ada_exceptions (const char *command, char **argv, int argc)
{
struct ui_out *uiout = current_uiout;
struct gdbarch *gdbarch = get_current_arch ();
char *regexp;
- struct cleanup *old_chain;
- VEC(ada_exc_info) *exceptions;
- int ix;
- struct ada_exc_info *info;
switch (argc)
{
break;
}
- exceptions = ada_exceptions_list (regexp);
- old_chain = make_cleanup (VEC_cleanup (ada_exc_info), &exceptions);
+ std::vector<ada_exc_info> exceptions = ada_exceptions_list (regexp);
- make_cleanup_ui_out_table_begin_end
- (uiout, 2, VEC_length (ada_exc_info, exceptions), "ada-exceptions");
- ui_out_table_header (uiout, 1, ui_left, "name", "Name");
- ui_out_table_header (uiout, 1, ui_left, "address", "Address");
- ui_out_table_body (uiout);
+ ui_out_emit_table table_emitter (uiout, 2,
+ exceptions.size (),
+ "ada-exceptions");
+ uiout->table_header (1, ui_left, "name", "Name");
+ uiout->table_header (1, ui_left, "address", "Address");
+ uiout->table_body ();
- for (ix = 0; VEC_iterate(ada_exc_info, exceptions, ix, info); ix++)
+ for (const ada_exc_info &info : exceptions)
{
- struct cleanup *sub_chain;
-
- sub_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
- ui_out_field_string (uiout, "name", info->name);
- ui_out_field_core_addr (uiout, "address", gdbarch, info->addr);
-
- do_cleanups (sub_chain);
+ ui_out_emit_tuple tuple_emitter (uiout, NULL);
+ uiout->field_string ("name", info.name);
+ uiout->field_core_addr ("address", gdbarch, info.addr);
}
-
- do_cleanups (old_chain);
}
/* Implement the "-info-gdb-mi-command" GDB/MI command. */
void
-mi_cmd_info_gdb_mi_command (char *command, char **argv, int argc)
+mi_cmd_info_gdb_mi_command (const char *command, char **argv, int argc)
{
const char *cmd_name;
struct mi_cmd *cmd;
struct ui_out *uiout = current_uiout;
- struct cleanup *old_chain;
/* This command takes exactly one argument. */
if (argc != 1)
cmd = mi_lookup (cmd_name);
- old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "command");
- ui_out_field_string (uiout, "exists", cmd != NULL ? "true" : "false");
- do_cleanups (old_chain);
+ ui_out_emit_tuple tuple_emitter (uiout, "command");
+ uiout->field_string ("exists", cmd != NULL ? "true" : "false");
}
void
-mi_cmd_info_os (char *command, char **argv, int argc)
+mi_cmd_info_os (const char *command, char **argv, int argc)
{
switch (argc)
{
case 0:
- info_osdata_command ("", 0);
+ info_osdata (NULL);
break;
case 1:
- info_osdata_command (argv[0], 0);
+ info_osdata (argv[0]);
break;
default:
error (_("Usage: -info-os [INFOTYPE]"));