Switch the license of all .c files to GPLv3.
[deliverable/binutils-gdb.git] / gdb / maint.c
index 9e66b09da318fdfbef7bd3a2c789145d74987a86..2f431fd405e641a0876f244a4b1738c071e2e3a0 100644 (file)
@@ -1,13 +1,15 @@
 /* Support for GDB maintenance commands.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
+   2003, 2004, 2007 Free Software Foundation, Inc.
+
    Written by Fred Fish at Cygnus Support.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,9 +18,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include "defs.h"
 #include "objfiles.h"
 #include "value.h"
 
+#include "cli/cli-decode.h"
+
 extern void _initialize_maint_cmds (void);
 
 static void maintenance_command (char *, int);
 
-static void maintenance_dump_me (char *, int);
-
 static void maintenance_internal_error (char *args, int from_tty);
 
 static void maintenance_demangle (char *, int);
@@ -52,8 +52,6 @@ static void maintenance_space_display (char *, int);
 
 static void maintenance_info_command (char *, int);
 
-static void print_section_table (bfd *, asection *, void *);
-
 static void maintenance_info_sections (char *, int);
 
 static void maintenance_print_command (char *, int);
@@ -67,6 +65,12 @@ static void maintenance_do_deprecate (char *, int);
    and one with slow communications.  */
 
 int watchdog = 0;
+static void
+show_watchdog (struct ui_file *file, int from_tty,
+              struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Watchdog timer is %s.\n"), value);
+}
 
 /*
 
@@ -85,12 +89,11 @@ int watchdog = 0;
 static void
 maintenance_command (char *args, int from_tty)
 {
-  printf_unfiltered ("\"maintenance\" must be followed by the name of a maintenance command.\n");
+  printf_unfiltered (_("\"maintenance\" must be followed by the name of a maintenance command.\n"));
   help_list (maintenancelist, "maintenance ", -1, gdb_stdout);
 }
 
 #ifndef _WIN32
-/* ARGSUSED */
 static void
 maintenance_dump_me (char *args, int from_tty)
 {
@@ -116,8 +119,18 @@ maintenance_dump_me (char *args, int from_tty)
 static void
 maintenance_internal_error (char *args, int from_tty)
 {
-  internal_error (__FILE__, __LINE__,
-                 "internal maintenance");
+  internal_error (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
+}
+
+/* Stimulate the internal error mechanism that GDB uses when an
+   internal problem is detected.  Allows testing of the mechanism.
+   Also useful when the user wants to drop a core file but not exit
+   GDB. */
+
+static void
+maintenance_internal_warning (char *args, int from_tty)
+{
+  internal_warning (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
 
 /* Someday we should allow demangling for things other than just
@@ -135,11 +148,12 @@ maintenance_demangle (char *args, int from_tty)
 
   if (args == NULL || *args == '\0')
     {
-      printf_unfiltered ("\"maintenance demangle\" takes an argument to demangle.\n");
+      printf_unfiltered (_("\"maintenance demangle\" takes an argument to demangle.\n"));
     }
   else
     {
-      demangled = cplus_demangle (args, DMGL_ANSI | DMGL_PARAMS);
+      demangled = language_demangle (current_language, args, 
+                                    DMGL_ANSI | DMGL_PARAMS);
       if (demangled != NULL)
        {
          printf_unfiltered ("%s\n", demangled);
@@ -147,7 +161,7 @@ maintenance_demangle (char *args, int from_tty)
        }
       else
        {
-         printf_unfiltered ("Can't demangle \"%s\"\n", args);
+         printf_unfiltered (_("Can't demangle \"%s\"\n"), args);
        }
     }
 }
@@ -158,7 +172,7 @@ maintenance_time_display (char *args, int from_tty)
   extern int display_time;
 
   if (args == NULL || *args == '\0')
-    printf_unfiltered ("\"maintenance time\" takes a numeric argument.\n");
+    printf_unfiltered (_("\"maintenance time\" takes a numeric argument.\n"));
   else
     display_time = strtol (args, NULL, 10);
 }
@@ -178,11 +192,10 @@ maintenance_space_display (char *args, int from_tty)
    allow_unknown 0.  Therefore, its own definition is called only for
    "maintenance info" with no args.  */
 
-/* ARGSUSED */
 static void
 maintenance_info_command (char *arg, int from_tty)
 {
-  printf_unfiltered ("\"maintenance info\" must be followed by the name of an info command.\n");
+  printf_unfiltered (_("\"maintenance info\" must be followed by the name of an info command.\n"));
   help_list (maintenanceinfolist, "maintenance info ", -1, gdb_stdout);
 }
 
@@ -289,15 +302,16 @@ print_bfd_flags (flagword flags)
 }
 
 static void
-print_section_info (const char *name, flagword flags, 
-                   CORE_ADDR addr, CORE_ADDR endaddr, 
-                   unsigned long filepos)
+maint_print_section_info (const char *name, flagword flags, 
+                         CORE_ADDR addr, CORE_ADDR endaddr, 
+                         unsigned long filepos)
 {
-  /* FIXME-32x64: Need print_address_numeric with field width.  */
+  /* FIXME-32x64: Need deprecated_print_address_numeric with field
+     width.  */
   printf_filtered ("    0x%s", paddr (addr));
   printf_filtered ("->0x%s", paddr (endaddr));
-  printf_filtered (" at 0x%s",
-                  local_hex_string_custom ((unsigned long) filepos, "08l"));
+  printf_filtered (" at %s",
+                  hex_string_custom ((unsigned long) filepos, 8));
   printf_filtered (": %s", name);
   print_bfd_flags (flags);
   printf_filtered ("\n");
@@ -319,7 +333,7 @@ print_bfd_section_info (bfd *abfd,
 
       addr = bfd_section_vma (abfd, asect);
       endaddr = addr + bfd_section_size (abfd, asect);
-      print_section_info (name, flags, addr, endaddr, asect->filepos);
+      maint_print_section_info (name, flags, addr, endaddr, asect->filepos);
     }
 }
 
@@ -335,21 +349,20 @@ print_objfile_section_info (bfd *abfd,
       || match_substring (string, name)
       || match_bfd_flags (string, flags))
     {
-      print_section_info (name, flags, asect->addr, asect->endaddr, 
+      maint_print_section_info (name, flags, asect->addr, asect->endaddr, 
                          asect->the_bfd_section->filepos);
     }
 }
 
-/* ARGSUSED */
 static void
 maintenance_info_sections (char *arg, int from_tty)
 {
   if (exec_bfd)
     {
-      printf_filtered ("Exec file:\n");
+      printf_filtered (_("Exec file:\n"));
       printf_filtered ("    `%s', ", bfd_get_filename (exec_bfd));
       wrap_here ("        ");
-      printf_filtered ("file type %s.\n", bfd_get_target (exec_bfd));
+      printf_filtered (_("file type %s.\n"), bfd_get_target (exec_bfd));
       if (arg && *arg && match_substring (arg, "ALLOBJ"))
        {
          struct objfile *ofile;
@@ -364,7 +377,7 @@ maintenance_info_sections (char *arg, int from_tty)
 
          ALL_OBJFILES (ofile)
            {
-             printf_filtered ("  Object file: %s\n"
+             printf_filtered (_("  Object file: %s\n")
                               bfd_get_filename (ofile->obfd));
              ALL_OBJFILE_OSECTIONS (ofile, osect)
                {
@@ -378,15 +391,14 @@ maintenance_info_sections (char *arg, int from_tty)
 
   if (core_bfd)
     {
-      printf_filtered ("Core file:\n");
+      printf_filtered (_("Core file:\n"));
       printf_filtered ("    `%s', ", bfd_get_filename (core_bfd));
       wrap_here ("        ");
-      printf_filtered ("file type %s.\n", bfd_get_target (core_bfd));
+      printf_filtered (_("file type %s.\n"), bfd_get_target (core_bfd));
       bfd_map_over_sections (core_bfd, print_bfd_section_info, arg);
     }
 }
 
-/* ARGSUSED */
 void
 maintenance_print_statistics (char *args, int from_tty)
 {
@@ -394,7 +406,7 @@ maintenance_print_statistics (char *args, int from_tty)
   print_symbol_bcache_statistics ();
 }
 
-void
+static void
 maintenance_print_architecture (char *args, int from_tty)
 {
   if (args == NULL)
@@ -403,7 +415,7 @@ maintenance_print_architecture (char *args, int from_tty)
     {
       struct ui_file *file = gdb_fopen (args, "w");
       if (file == NULL)
-       perror_with_name ("maintenance print architecture");
+       perror_with_name (_("maintenance print architecture"));
       gdbarch_dump (current_gdbarch, file);    
       ui_file_delete (file);
     }
@@ -413,11 +425,10 @@ maintenance_print_architecture (char *args, int from_tty)
    allow_unknown 0.  Therefore, its own definition is called only for
    "maintenance print" with no args.  */
 
-/* ARGSUSED */
 static void
 maintenance_print_command (char *arg, int from_tty)
 {
-  printf_unfiltered ("\"maintenance print\" must be followed by the name of a print command.\n");
+  printf_unfiltered (_("\"maintenance print\" must be followed by the name of a print command.\n"));
   help_list (maintenanceprintlist, "maintenance print ", -1, gdb_stdout);
 }
 
@@ -437,7 +448,7 @@ maintenance_translate_address (char *arg, int from_tty)
   struct objfile *objfile;
 
   if (arg == NULL || *arg == 0)
-    error ("requires argument (address or section + address)");
+    error (_("requires argument (address or section + address)"));
 
   sect = NULL;
   p = arg;
@@ -447,7 +458,7 @@ maintenance_translate_address (char *arg, int from_tty)
       while (*p && !isspace (*p))      /* Find end of section name */
        p++;
       if (*p == '\000')                /* End of command? */
-       error ("Need to specify <section-name> and <address>");
+       error (_("Need to specify <section-name> and <address>"));
       *p++ = '\000';
       while (isspace (*p))
        p++;                    /* Skip whitespace */
@@ -460,7 +471,7 @@ maintenance_translate_address (char *arg, int from_tty)
       }
 
       if (!sect)
-       error ("Unknown section %s.", arg);
+       error (_("Unknown section %s."), arg);
     }
 
   address = parse_and_eval_address (p);
@@ -472,12 +483,12 @@ maintenance_translate_address (char *arg, int from_tty)
 
   if (sym)
     printf_filtered ("%s+%s\n",
-                    SYMBOL_SOURCE_NAME (sym),
+                    SYMBOL_PRINT_NAME (sym),
                     paddr_u (address - SYMBOL_VALUE_ADDRESS (sym)));
   else if (sect)
-    printf_filtered ("no symbol at %s:0x%s\n", sect->name, paddr (address));
+    printf_filtered (_("no symbol at %s:0x%s\n"), sect->name, paddr (address));
   else
-    printf_filtered ("no symbol at 0x%s\n", paddr (address));
+    printf_filtered (_("no symbol at 0x%s\n"), paddr (address));
 
   return;
 }
@@ -492,9 +503,9 @@ maintenance_deprecate (char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     {
-      printf_unfiltered ("\"maintenance deprecate\" takes an argument, \n\
+      printf_unfiltered (_("\"maintenance deprecate\" takes an argument, \n\
 the command you want to deprecate, and optionally the replacement command \n\
-enclosed in quotes.\n");
+enclosed in quotes.\n"));
     }
 
   maintenance_do_deprecate (args, 1);
@@ -507,8 +518,8 @@ maintenance_undeprecate (char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     {
-      printf_unfiltered ("\"maintenance undeprecate\" takes an argument, \n\
-the command you want to undeprecate.\n");
+      printf_unfiltered (_("\"maintenance undeprecate\" takes an argument, \n\
+the command you want to undeprecate.\n"));
     }
 
   maintenance_do_deprecate (args, 0);
@@ -540,7 +551,7 @@ maintenance_do_deprecate (char *text, int deprecate)
 
   if (!lookup_cmd_composition (text, &alias, &prefix_cmd, &cmd))
     {
-      printf_filtered ("Can't find command '%s' to deprecate.\n", text);
+      printf_filtered (_("Can't find command '%s' to deprecate.\n"), text);
       return;
     }
 
@@ -601,13 +612,13 @@ maintenance_do_deprecate (char *text, int deprecate)
 
 /* Maintenance set/show framework.  */
 
-static struct cmd_list_element *maintenance_set_cmdlist;
-static struct cmd_list_element *maintenance_show_cmdlist;
+struct cmd_list_element *maintenance_set_cmdlist;
+struct cmd_list_element *maintenance_show_cmdlist;
 
 static void
 maintenance_set_cmd (char *args, int from_tty)
 {
-  printf_unfiltered ("\"maintenance set\" must be followed by the name of a set command.\n");
+  printf_unfiltered (_("\"maintenance set\" must be followed by the name of a set command.\n"));
   help_list (maintenance_set_cmdlist, "maintenance set ", -1, gdb_stdout);
 }
 
@@ -617,16 +628,73 @@ maintenance_show_cmd (char *args, int from_tty)
   cmd_show_list (maintenance_show_cmdlist, from_tty, "");
 }
 
-#ifdef NOTYET
 /* Profiling support.  */
 
 static int maintenance_profile_p;
+static void
+show_maintenance_profile_p (struct ui_file *file, int from_tty,
+                           struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Internal profiling is %s.\n"), value);
+}
+
+#if defined (HAVE_MONSTARTUP) && defined (HAVE__MCLEANUP)
+
+#ifdef HAVE__ETEXT
+extern char _etext;
+#define TEXTEND &_etext
+#else
+extern char etext;
+#define TEXTEND &etext
+#endif
+
+static int profiling_state;
 
+static void
+mcleanup_wrapper (void)
+{
+  extern void _mcleanup (void);
+
+  if (profiling_state)
+    _mcleanup ();
+}
+
+static void
+maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c)
+{
+  if (maintenance_profile_p == profiling_state)
+    return;
+
+  profiling_state = maintenance_profile_p;
+
+  if (maintenance_profile_p)
+    {
+      static int profiling_initialized;
+
+      extern void monstartup (unsigned long, unsigned long);
+      extern int main();
+
+      if (!profiling_initialized)
+       {
+         atexit (mcleanup_wrapper);
+         profiling_initialized = 1;
+       }
+
+      /* "main" is now always the first function in the text segment, so use
+        its address for monstartup.  */
+      monstartup ((unsigned long) &main, (unsigned long) TEXTEND);
+    }
+  else
+    {
+      extern void _mcleanup (void);
+      _mcleanup ();
+    }
+}
+#else
 static void
 maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c)
 {
-  maintenance_profile_p = 0;
-  warning ("\"maintenance set profile\" command not supported.\n");
+  error (_("Profiling support is not available on this system."));
 }
 #endif
 
@@ -635,24 +703,24 @@ _initialize_maint_cmds (void)
 {
   struct cmd_list_element *tmpcmd;
 
-  add_prefix_cmd ("maintenance", class_maintenance, maintenance_command,
-                 "Commands for use by GDB maintainers.\n\
+  add_prefix_cmd ("maintenance", class_maintenance, maintenance_command, _("\
+Commands for use by GDB maintainers.\n\
 Includes commands to dump specific internal GDB structures in\n\
 a human readable form, to cause GDB to deliberately dump core,\n\
-to test internal functions such as the C++ demangler, etc.",
+to test internal functions such as the C++/ObjC demangler, etc."),
                  &maintenancelist, "maintenance ", 0,
                  &cmdlist);
 
   add_com_alias ("mt", "maintenance", class_maintenance, 1);
 
-  add_prefix_cmd ("info", class_maintenance, maintenance_info_command,
-     "Commands for showing internal info about the program being debugged.",
+  add_prefix_cmd ("info", class_maintenance, maintenance_info_command, _("\
+Commands for showing internal info about the program being debugged."),
                  &maintenanceinfolist, "maintenance info ", 0,
                  &maintenancelist);
   add_alias_cmd ("i", "info", class_maintenance, 1, &maintenancelist);
 
-  add_cmd ("sections", class_maintenance, maintenance_info_sections,
-          "List the BFD sections of the exec and core files. \n
+  add_cmd ("sections", class_maintenance, maintenance_info_sections, _("\
+List the BFD sections of the exec and core files. \n\
 Arguments may be any combination of:\n\
        [one or more section names]\n\
        ALLOC LOAD RELOC READONLY CODE DATA ROM CONSTRUCTOR\n\
@@ -660,137 +728,155 @@ Arguments may be any combination of:\n\
 Sections matching any argument will be listed (no argument\n\
 implies all sections).  In addition, the special argument\n\
        ALLOBJ\n\
-lists all sections from all object files, including shared libraries.",
+lists all sections from all object files, including shared libraries."),
           &maintenanceinfolist);
 
   add_prefix_cmd ("print", class_maintenance, maintenance_print_command,
-                 "Maintenance command for printing GDB internal state.",
+                 _("Maintenance command for printing GDB internal state."),
                  &maintenanceprintlist, "maintenance print ", 0,
                  &maintenancelist);
 
-  add_prefix_cmd ("set", class_maintenance, maintenance_set_cmd, "\
+  add_prefix_cmd ("set", class_maintenance, maintenance_set_cmd, _("\
 Set GDB internal variables used by the GDB maintainer.\n\
-Configure variables internal to GDB that aid in GDB's maintenance",
+Configure variables internal to GDB that aid in GDB's maintenance"),
                  &maintenance_set_cmdlist, "maintenance set ",
                  0/*allow-unknown*/,
                  &maintenancelist);
 
-  add_prefix_cmd ("show", class_maintenance, maintenance_show_cmd, "\
+  add_prefix_cmd ("show", class_maintenance, maintenance_show_cmd, _("\
 Show GDB internal variables used by the GDB maintainer.\n\
-Configure variables internal to GDB that aid in GDB's maintenance",
+Configure variables internal to GDB that aid in GDB's maintenance"),
                  &maintenance_show_cmdlist, "maintenance show ",
                  0/*allow-unknown*/,
                  &maintenancelist);
 
 #ifndef _WIN32
-  add_cmd ("dump-me", class_maintenance, maintenance_dump_me,
-          "Get fatal error; make debugger dump its core.\n\
-GDB sets it's handling of SIGQUIT back to SIG_DFL and then sends\n\
-itself a SIGQUIT signal.",
+  add_cmd ("dump-me", class_maintenance, maintenance_dump_me, _("\
+Get fatal error; make debugger dump its core.\n\
+GDB sets its handling of SIGQUIT back to SIG_DFL and then sends\n\
+itself a SIGQUIT signal."),
           &maintenancelist);
 #endif
 
-  add_cmd ("internal-error", class_maintenance, maintenance_internal_error,
-          "Give GDB an internal error.\n\
-Cause GDB to behave as if an internal error was detected.",
+  add_cmd ("internal-error", class_maintenance,
+          maintenance_internal_error, _("\
+Give GDB an internal error.\n\
+Cause GDB to behave as if an internal error was detected."),
           &maintenancelist);
 
-  add_cmd ("demangle", class_maintenance, maintenance_demangle,
-          "Demangle a C++ mangled name.\n\
+  add_cmd ("internal-warning", class_maintenance,
+          maintenance_internal_warning, _("\
+Give GDB an internal warning.\n\
+Cause GDB to behave as if an internal warning was reported."),
+          &maintenancelist);
+
+  add_cmd ("demangle", class_maintenance, maintenance_demangle, _("\
+Demangle a C++/ObjC mangled name.\n\
 Call internal GDB demangler routine to demangle a C++ link name\n\
-and prints the result.",
+and prints the result."),
           &maintenancelist);
 
-  add_cmd ("time", class_maintenance, maintenance_time_display,
-          "Set the display of time usage.\n\
+  add_cmd ("time", class_maintenance, maintenance_time_display, _("\
+Set the display of time usage.\n\
 If nonzero, will cause the execution time for each command to be\n\
-displayed, following the command's output.",
+displayed, following the command's output."),
           &maintenancelist);
 
-  add_cmd ("space", class_maintenance, maintenance_space_display,
-          "Set the display of space usage.\n\
+  add_cmd ("space", class_maintenance, maintenance_space_display, _("\
+Set the display of space usage.\n\
 If nonzero, will cause the execution space for each command to be\n\
-displayed, following the command's output.",
+displayed, following the command's output."),
           &maintenancelist);
 
-  add_cmd ("type", class_maintenance, maintenance_print_type,
-          "Print a type chain for a given symbol.\n\
+  add_cmd ("type", class_maintenance, maintenance_print_type, _("\
+Print a type chain for a given symbol.\n\
 For each node in a type chain, print the raw data for each member of\n\
-the type structure, and the interpretation of the data.",
+the type structure, and the interpretation of the data."),
           &maintenanceprintlist);
 
-  add_cmd ("symbols", class_maintenance, maintenance_print_symbols,
-          "Print dump of current symbol definitions.\n\
+  add_cmd ("symbols", class_maintenance, maintenance_print_symbols, _("\
+Print dump of current symbol definitions.\n\
 Entries in the full symbol table are dumped to file OUTFILE.\n\
-If a SOURCE file is specified, dump only that file's symbols.",
+If a SOURCE file is specified, dump only that file's symbols."),
           &maintenanceprintlist);
 
-  add_cmd ("msymbols", class_maintenance, maintenance_print_msymbols,
-          "Print dump of current minimal symbol definitions.\n\
+  add_cmd ("msymbols", class_maintenance, maintenance_print_msymbols, _("\
+Print dump of current minimal symbol definitions.\n\
 Entries in the minimal symbol table are dumped to file OUTFILE.\n\
-If a SOURCE file is specified, dump only that file's minimal symbols.",
+If a SOURCE file is specified, dump only that file's minimal symbols."),
           &maintenanceprintlist);
 
-  add_cmd ("psymbols", class_maintenance, maintenance_print_psymbols,
-          "Print dump of current partial symbol definitions.\n\
+  add_cmd ("psymbols", class_maintenance, maintenance_print_psymbols, _("\
+Print dump of current partial symbol definitions.\n\
 Entries in the partial symbol table are dumped to file OUTFILE.\n\
-If a SOURCE file is specified, dump only that file's partial symbols.",
+If a SOURCE file is specified, dump only that file's partial symbols."),
           &maintenanceprintlist);
 
   add_cmd ("objfiles", class_maintenance, maintenance_print_objfiles,
-          "Print dump of current object file definitions.",
+          _("Print dump of current object file definitions."),
           &maintenanceprintlist);
 
+  add_cmd ("symtabs", class_maintenance, maintenance_info_symtabs, _("\
+List the full symbol tables for all object files.\n\
+This does not include information about individual symbols, blocks, or\n\
+linetables --- just the symbol table structures themselves.\n\
+With an argument REGEXP, list the symbol tables whose names that match that."),
+          &maintenanceinfolist);
+
+  add_cmd ("psymtabs", class_maintenance, maintenance_info_psymtabs, _("\
+List the partial symbol tables for all object files.\n\
+This does not include information about individual partial symbols,\n\
+just the symbol table structures themselves."),
+          &maintenanceinfolist);
+
   add_cmd ("statistics", class_maintenance, maintenance_print_statistics,
-          "Print statistics about internal gdb state.",
+          _("Print statistics about internal gdb state."),
           &maintenanceprintlist);
 
-  add_cmd ("architecture", class_maintenance, maintenance_print_architecture,
-          "Print the internal architecture configuration.\
-Takes an optional file parameter.",
+  add_cmd ("architecture", class_maintenance,
+          maintenance_print_architecture, _("\
+Print the internal architecture configuration.\n\
+Takes an optional file parameter."),
           &maintenanceprintlist);
 
   add_cmd ("check-symtabs", class_maintenance, maintenance_check_symtabs,
-          "Check consistency of psymtabs and symtabs.",
+          _("Check consistency of psymtabs and symtabs."),
           &maintenancelist);
 
   add_cmd ("translate-address", class_maintenance, maintenance_translate_address,
-          "Translate a section name and address to a symbol.",
+          _("Translate a section name and address to a symbol."),
           &maintenancelist);
 
-  add_cmd ("deprecate", class_maintenance, maintenance_deprecate,
-          "Deprecate a command.  Note that this is just in here so the \n\
+  add_cmd ("deprecate", class_maintenance, maintenance_deprecate, _("\
+Deprecate a command.  Note that this is just in here so the \n\
 testsuite can check the comamnd deprecator. You probably shouldn't use this,\n\
 rather you should use the C function deprecate_cmd().  If you decide you \n\
 want to use it: maintenance deprecate 'commandname' \"replacement\". The \n\
-replacement is optional.", &maintenancelist);
+replacement is optional."), &maintenancelist);
 
-  add_cmd ("undeprecate", class_maintenance, maintenance_undeprecate,
-          "Undeprecate a command.  Note that this is just in here so the \n\
+  add_cmd ("undeprecate", class_maintenance, maintenance_undeprecate, _("\
+Undeprecate a command.  Note that this is just in here so the \n\
 testsuite can check the comamnd deprecator. You probably shouldn't use this,\n\
-If you decide you want to use it: maintenance undeprecate 'commandname'",
+If you decide you want to use it: maintenance undeprecate 'commandname'"),
           &maintenancelist);
 
-  add_show_from_set (
-                     add_set_cmd ("watchdog", class_maintenance, var_zinteger, (char *) &watchdog,
-                                  "Set watchdog timer.\n\
-When non-zero, this timeout is used instead of waiting forever for a target to\n\
-finish a low-level step or continue operation.  If the specified amount of time\n\
-passes without a response from the target, an error occurs.", &setlist),
-                     &showlist);
-
-
-#ifdef NOTYET
-  /* FIXME: cagney/2001-09-24: A patch introducing a
-     add_set_boolean_cmd() is pending, the below should probably use
-     it.  A patch implementing profiling is pending, this just sets up
-     the framework.  */
-  tmpcmd = add_set_cmd ("profile", class_maintenance,
-                       var_boolean, &maintenance_profile_p,
-                       "Set internal profiling.\n\
-When enabled GDB is profiled.",
-                       &maintenance_set_cmdlist);
-  tmpcmd->function.sfunc = maintenance_set_profile_cmd;
-  add_show_from_set (tmpcmd, &maintenance_show_cmdlist);
-#endif
+  add_setshow_zinteger_cmd ("watchdog", class_maintenance, &watchdog, _("\
+Set watchdog timer."), _("\
+Show watchdog timer."), _("\
+When non-zero, this timeout is used instead of waiting forever for a target\n\
+to finish a low-level step or continue operation.  If the specified amount\n\
+of time passes without a response from the target, an error occurs."),
+                           NULL,
+                           show_watchdog,
+                           &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("profile", class_maintenance,
+                          &maintenance_profile_p, _("\
+Set internal profiling."), _("\
+Show internal profiling."), _("\
+When enabled GDB is profiled."),
+                          maintenance_set_profile_cmd,
+                          show_maintenance_profile_p,
+                          &maintenance_set_cmdlist,
+                          &maintenance_show_cmdlist);
 }
This page took 0.037209 seconds and 4 git commands to generate.