X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fmaint.c;h=6a106fd387c391f348c075c20a235359a09df068;hb=0b30217134add051e159a192066a1e568ebd837f;hp=4316d66b204dc90b9f18fd44c72a5fd06854f525;hpb=4c38e0a4fcb69f8586d8db0b9cdb8dbab5980811;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/maint.c b/gdb/maint.c index 4316d66b20..6a106fd387 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -1,7 +1,7 @@ /* Support for GDB maintenance commands. - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, - 2003, 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1992-1997, 1999-2004, 2007-2012 Free Software + Foundation, Inc. Written by Fred Fish at Cygnus Support. @@ -74,24 +74,13 @@ show_watchdog (struct ui_file *file, int from_tty, fprintf_filtered (file, _("Watchdog timer is %s.\n"), value); } -/* - - LOCAL FUNCTION - - maintenance_command -- access the maintenance subcommands - - SYNOPSIS - - void maintenance_command (char *args, int from_tty) - - DESCRIPTION - - */ +/* Access the maintenance subcommands. */ 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); } @@ -116,7 +105,7 @@ maintenance_dump_me (char *args, int from_tty) /* 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. */ + GDB. */ static void maintenance_internal_error (char *args, int from_tty) @@ -127,7 +116,7 @@ maintenance_internal_error (char *args, int from_tty) /* 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. */ + GDB. */ static void maintenance_internal_warning (char *args, int from_tty) @@ -141,7 +130,7 @@ maintenance_internal_warning (char *args, int from_tty) debuggee's process space, and have gdb fetch and demangle that string. If we have a char* pointer "ptr" that points to a string, we might want to be able to given just the name and have GDB - demangle and print what it points to, etc. (FIXME) */ + demangle and print what it points to, etc. (FIXME) */ static void maintenance_demangle (char *args, int from_tty) @@ -150,7 +139,8 @@ 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 { @@ -171,23 +161,19 @@ maintenance_demangle (char *args, int from_tty) static void 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")); else - display_time = strtol (args, NULL, 10); + set_display_time (strtol (args, NULL, 10)); } static void maintenance_space_display (char *args, int from_tty) { - extern int display_space; - if (args == NULL || *args == '\0') printf_unfiltered ("\"maintenance space\" takes a numeric argument.\n"); else - display_space = strtol (args, NULL, 10); + set_display_space (strtol (args, NULL, 10)); } /* The "maintenance info" command is defined as a prefix, with @@ -197,7 +183,8 @@ maintenance_space_display (char *args, int from_tty) 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); } @@ -211,12 +198,12 @@ match_substring (const char *string, const char *substr) while ((tok = strstr (string, substr)) != NULL) { - /* Got a partial match. Is it a whole word? */ + /* Got a partial match. Is it a whole word? */ if (tok == string || tok[-1] == ' ' || tok[-1] == '\t') { - /* Token is delimited at the front... */ + /* Token is delimited at the front... */ if (tok[substr_len] == ' ' || tok[substr_len] == '\t' || tok[substr_len] == '\0') @@ -354,6 +341,7 @@ print_objfile_section_info (bfd *abfd, { struct gdbarch *gdbarch = gdbarch_from_bfd (abfd); int addr_size = gdbarch_addr_bit (gdbarch) / 8; + maint_print_section_info (name, flags, obj_section_addr (asect), obj_section_endaddr (asect), @@ -425,6 +413,7 @@ maintenance_print_architecture (char *args, int from_tty) { struct cleanup *cleanups; struct ui_file *file = gdb_fopen (args, "w"); + if (file == NULL) perror_with_name (_("maintenance print architecture")); cleanups = make_cleanup_ui_file_delete (file); @@ -440,15 +429,15 @@ maintenance_print_architecture (char *args, int from_tty) 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); } /* The "maintenance translate-address" command converts a section and address to a symbol. This can be called in two ways: maintenance translate-address - or maintenance translate-address - */ + or maintenance translate-address . */ static void maintenance_translate_address (char *arg, int from_tty) @@ -466,14 +455,14 @@ maintenance_translate_address (char *arg, int from_tty) p = arg; if (!isdigit (*p)) - { /* See if we have a valid section name */ - while (*p && !isspace (*p)) /* Find end of section name */ + { /* See if we have a valid section name. */ + while (*p && !isspace (*p)) /* Find end of section name. */ p++; - if (*p == '\000') /* End of command? */ + if (*p == '\000') /* End of command? */ error (_("Need to specify and
")); *p++ = '\000'; while (isspace (*p)) - p++; /* Skip whitespace */ + p++; /* Skip whitespace. */ ALL_OBJSECTIONS (objfile, sect) { @@ -495,7 +484,8 @@ maintenance_translate_address (char *arg, int from_tty) if (sym) { const char *symbol_name = SYMBOL_PRINT_NAME (sym); - const char *symbol_offset = pulongest (address - SYMBOL_VALUE_ADDRESS (sym)); + const char *symbol_offset + = pulongest (address - SYMBOL_VALUE_ADDRESS (sym)); sect = SYMBOL_OBJ_SECTION(sym); if (sect != NULL) @@ -511,7 +501,8 @@ maintenance_translate_address (char *arg, int from_tty) if (MULTI_OBJFILE_P ()) printf_filtered (_("%s + %s in section %s of %s\n"), - symbol_name, symbol_offset, section_name, obj_name); + symbol_name, symbol_offset, + section_name, obj_name); else printf_filtered (_("%s + %s in section %s\n"), symbol_name, symbol_offset, section_name); @@ -531,15 +522,15 @@ maintenance_translate_address (char *arg, int from_tty) /* When a command is deprecated the user will be warned the first time the command is used. If possible, a replacement will be - offered. */ + offered. */ static void maintenance_deprecate (char *args, int from_tty) { if (args == NULL || *args == '\0') { - printf_unfiltered (_("\"maintenance deprecate\" takes an argument, \n\ -the command you want to deprecate, and optionally the replacement command \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")); } @@ -561,7 +552,7 @@ the command you want to undeprecate.\n")); } -/* You really shouldn't be using this. It is just for the testsuite. +/* You really shouldn't be using this. It is just for the testsuite. Rather, you should use deprecate_cmd() when the command is created in _initialize_blah(). @@ -571,7 +562,6 @@ the command you want to undeprecate.\n")); static void maintenance_do_deprecate (char *text, int deprecate) { - struct cmd_list_element *alias = NULL; struct cmd_list_element *prefix_cmd = NULL; struct cmd_list_element *cmd = NULL; @@ -592,7 +582,7 @@ maintenance_do_deprecate (char *text, int deprecate) if (deprecate) { - /* look for a replacement command */ + /* Look for a replacement command. */ start_ptr = strchr (text, '\"'); if (start_ptr != NULL) { @@ -615,10 +605,9 @@ maintenance_do_deprecate (char *text, int deprecate) Note the MALLOCED_REPLACEMENT test. If the command's replacement string was allocated at compile time we don't want to free the - memory. */ + memory. */ if (alias) { - if (alias->flags & MALLOCED_REPLACEMENT) xfree (alias->replacement); @@ -643,6 +632,7 @@ maintenance_do_deprecate (char *text, int deprecate) cmd->flags |= MALLOCED_REPLACEMENT; return; } + xfree (replacement); } /* Maintenance set/show framework. */ @@ -653,7 +643,8 @@ 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); } @@ -695,7 +686,8 @@ mcleanup_wrapper (void) } static void -maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c) +maintenance_set_profile_cmd (char *args, int from_tty, + struct cmd_list_element *c) { if (maintenance_profile_p == profiling_state) return; @@ -722,12 +714,14 @@ maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element * else { extern void _mcleanup (void); + _mcleanup (); } } #else static void -maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c) +maintenance_set_profile_cmd (char *args, int from_tty, + struct cmd_list_element *c) { error (_("Profiling support is not available on this system.")); } @@ -736,8 +730,6 @@ maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element * void _initialize_maint_cmds (void) { - struct cmd_list_element *tmpcmd; - 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\ @@ -878,7 +870,8 @@ Takes an optional file parameter."), _("Check consistency of psymtabs and symtabs."), &maintenancelist); - add_cmd ("translate-address", class_maintenance, maintenance_translate_address, + add_cmd ("translate-address", class_maintenance, + maintenance_translate_address, _("Translate a section name and address to a symbol."), &maintenancelist);