/* Support for GDB maintenance commands.
- Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001,
- 2002, 2003, 2004 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.
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. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
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);
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);
+}
/*
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);
}
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
{
}
else
{
- printf_unfiltered ("Can't demangle \"%s\"\n", args);
+ printf_unfiltered (_("Can't demangle \"%s\"\n"), args);
}
}
}
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);
}
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);
}
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 %s",
{
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;
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)
{
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);
}
}
{
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);
}
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);
}
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;
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 */
}
if (!sect)
- error ("Unknown section %s.", arg);
+ error (_("Unknown section %s."), arg);
}
address = parse_and_eval_address (p);
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;
}
{
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);
{
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);
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;
}
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);
}
/* 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)
static void
maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c)
{
- error ("Profiling support is not available on this system.");
+ error (_("Profiling support is not available on this system."));
}
#endif
{
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++/ObjC 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\
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\
+ 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.",
+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 ("internal-warning", class_maintenance, maintenance_internal_warning,
- "Give GDB an internal warning.\n\
-Cause GDB to behave as if an internal warning was reported.",
+ 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\
+ 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\
+ 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.",
+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\
+ 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.",
+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);
- deprecated_add_show_from_set
- (add_set_cmd ("watchdog", class_maintenance, var_zinteger,
- (char *) &watchdog,
- "Set watchdog timer.\n\
+ 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.",
- &setlist),
- &showlist);
-
+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.", "\
-Internal profiling is %s.",
- maintenance_set_profile_cmd, NULL,
+ &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);
}