From 7919b081a1cd9713321c2255c2822ec9efbec636 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Fri, 9 Aug 2002 19:54:56 +0000 Subject: [PATCH] * mi-main.c (mi_cmd_data_list_register_names): Add "-numbers" option. --- gdb/mi/ChangeLog | 5 +++++ gdb/mi/mi-main.c | 58 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/gdb/mi/ChangeLog b/gdb/mi/ChangeLog index eac1700a5b2..de2fbaec654 100644 --- a/gdb/mi/ChangeLog +++ b/gdb/mi/ChangeLog @@ -1,3 +1,8 @@ +2002-08-09 Keith Seitz + + * mi-main.c (mi_cmd_data_list_register_names): Add "-numbers" + option. + 2002-08-09 Keith Seitz * mi-interp.c (mi_event_handlers): Add context_changed event diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 7a6b2cdd755..ef695aae51f 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -282,7 +282,7 @@ enum mi_cmd_result mi_cmd_data_list_register_names (char *command, char **argv, int argc) { int regnum, numregs; - int i; + int i, numbers; /* Note that the test for a valid register must include checking the REGISTER_NAME because NUM_REGS may be allocated for the union of @@ -291,6 +291,26 @@ mi_cmd_data_list_register_names (char *command, char **argv, int argc) the particular processor being debugged. */ numregs = NUM_REGS + NUM_PSEUDO_REGS; + numbers = 0; + + if (!gdb_current_interpreter_is_named (GDB_INTERPRETER_MI0) + && !gdb_current_interpreter_is_named (GDB_INTERPRETER_MI1) + && argc > 0 && *argv[0] == '-') + { + if (strncmp (argv[0], "-numbers", strlen (argv[0])) == 0) + { + numbers = 1; + --argc; + ++argv; + } + else + { + xasprintf (&mi_error_message, + "mi_cmd_data_list_register_names: invalid option \"%s\"", + argv[0]); + return MI_CMD_ERROR; + } + } ui_out_list_begin (uiout, "register-names"); @@ -304,7 +324,17 @@ mi_cmd_data_list_register_names (char *command, char **argv, int argc) || *(REGISTER_NAME (regnum)) == '\0') ui_out_field_string (uiout, NULL, ""); else - ui_out_field_string (uiout, NULL, REGISTER_NAME (regnum)); + { + if (numbers) + { + ui_out_tuple_begin (uiout, NULL); + ui_out_field_int (uiout, "number", regnum); + ui_out_field_string (uiout, "name", REGISTER_NAME (regnum)); + ui_out_tuple_end (uiout); + } + else + ui_out_field_string (uiout, NULL, REGISTER_NAME (regnum)); + } } } @@ -319,9 +349,29 @@ mi_cmd_data_list_register_names (char *command, char **argv, int argc) } if (REGISTER_NAME (regnum) == NULL || *(REGISTER_NAME (regnum)) == '\0') - ui_out_field_string (uiout, NULL, ""); + { + if (numbers) + { + ui_out_tuple_begin (uiout, NULL); + ui_out_field_int (uiout, "number", regnum); + ui_out_field_string (uiout, "name", ""); + ui_out_tuple_end (uiout); + } + else + ui_out_field_string (uiout, NULL, ""); + } else - ui_out_field_string (uiout, NULL, REGISTER_NAME (regnum)); + { + if (numbers) + { + ui_out_tuple_begin (uiout, NULL); + ui_out_field_int (uiout, "number", regnum); + ui_out_field_string (uiout, NULL, REGISTER_NAME (regnum)); + ui_out_tuple_end (uiout); + } + else + ui_out_field_string (uiout, NULL, REGISTER_NAME (regnum)); + } } ui_out_list_end (uiout); return MI_CMD_DONE; -- 2.47.2