]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* mi-main.c (mi_cmd_data_list_register_names): Add "-numbers"
authorKeith Seitz <keiths@redhat.com>
Fri, 9 Aug 2002 19:54:56 +0000 (19:54 +0000)
committerKeith Seitz <keiths@redhat.com>
Fri, 9 Aug 2002 19:54:56 +0000 (19:54 +0000)
        option.

gdb/mi/ChangeLog
gdb/mi/mi-main.c

index eac1700a5b226ea97e08eb70693fbadc2ec47428..de2fbaec654018f3eea2a7356959540961c12f5c 100644 (file)
@@ -1,3 +1,8 @@
+2002-08-09  Keith Seitz  <keiths@redhat.com>
+
+       * mi-main.c (mi_cmd_data_list_register_names): Add "-numbers"
+       option.
+
 2002-08-09  Keith Seitz  <keiths@redhat.com>
 
         * mi-interp.c (mi_event_handlers): Add context_changed event
index 7a6b2cdd755c14c0098564c950211356043b6152..ef695aae51fb0dd6406046289194e614393ad89f 100644 (file)
@@ -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;