#include "readline/readline.h"
#include "gdb_assert.h"
#include "block.h"
+#include "observer.h"
#include <sys/types.h>
#include <fcntl.h>
static void add_filename_language (char *ext, enum language lang);
-static void set_ext_lang_command (char *args, int from_tty);
-
static void info_ext_lang_command (char *args, int from_tty);
static char *find_separate_debug_file (struct objfile *objfile);
#else
int symbol_reloading = 0;
#endif
+static void
+show_symbol_reloading (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("\
+Dynamic symbol table reloading multiple times in one run is %s.\n"),
+ value);
+}
+
/* If non-zero, shared library symbols will be added automatically
when the inferior is created, new libraries are loaded, or when
return sap;
}
+
+/* Return a freshly allocated copy of ADDRS. The section names, if
+ any, are also freshly allocated copies of those in ADDRS. */
+struct section_addr_info *
+copy_section_addr_info (struct section_addr_info *addrs)
+{
+ struct section_addr_info *copy
+ = alloc_section_addr_info (addrs->num_sections);
+ int i;
+
+ copy->num_sections = addrs->num_sections;
+ for (i = 0; i < addrs->num_sections; i++)
+ {
+ copy->other[i].addr = addrs->other[i].addr;
+ if (addrs->other[i].name)
+ copy->other[i].name = xstrdup (addrs->other[i].name);
+ else
+ copy->other[i].name = NULL;
+ copy->other[i].sectindex = addrs->other[i].sectindex;
+ }
+
+ return copy;
+}
+
+
+
/* Build (allocate and populate) a section_addr_info struct from
an existing section table. */
bfd_map_over_sections (objfile->obfd, find_lowest_section,
&lower_sect);
if (lower_sect == NULL)
- warning ("no loadable sections found in added symbol-file %s",
+ warning (_("no loadable sections found in added symbol-file %s"),
objfile->name);
else
if ((bfd_get_section_flags (objfile->obfd, lower_sect) & SEC_CODE) == 0)
- warning ("Lowest section in %s is %s at %s",
+ warning (_("Lowest section in %s is %s at %s"),
objfile->name,
bfd_section_name (objfile->obfd, lower_sect),
paddr (bfd_section_vma (objfile->obfd, lower_sect)));
}
else
{
- warning ("section %s not found in %s",
+ warning (_("section %s not found in %s"),
addrs->other[i].name,
objfile->name);
addrs->other[i].addr = 0;
struct objfile *objfile;
struct partial_symtab *psymtab;
char *debugfile;
- struct section_addr_info *orig_addrs;
+ struct section_addr_info *orig_addrs = NULL;
struct cleanup *my_cleanups;
const char *name = bfd_get_filename (abfd);
&& mainline
&& from_tty
&& !query ("Load new symbol table from \"%s\"? ", name))
- error ("Not confirmed.");
+ error (_("Not confirmed."));
objfile = allocate_objfile (abfd, flags);
discard_cleanups (my_cleanups);
- orig_addrs = alloc_section_addr_info (bfd_count_sections (abfd));
- my_cleanups = make_cleanup (xfree, orig_addrs);
if (addrs)
{
- int i;
- orig_addrs->num_sections = addrs->num_sections;
- for (i = 0; i < addrs->num_sections; i++)
- orig_addrs->other[i] = addrs->other[i];
+ orig_addrs = copy_section_addr_info (addrs);
+ make_cleanup_free_section_addr_info (orig_addrs);
}
/* We either created a new mapped symbol table, mapped an existing
deprecated_pre_add_symbol_hook (name);
else
{
- printf_unfiltered ("Reading symbols from %s...", name);
+ printf_unfiltered (_("Reading symbols from %s..."), name);
wrap_here ("");
gdb_flush (gdb_stdout);
}
{
if (from_tty || info_verbose)
{
- printf_unfiltered ("expanding to full symbols...");
+ printf_unfiltered (_("expanding to full symbols..."));
wrap_here ("");
gdb_flush (gdb_stdout);
}
if (!have_partial_symbols () && !have_full_symbols ())
{
wrap_here ("");
- printf_unfiltered ("(no debugging symbols found)...");
+ printf_filtered (_("(no debugging symbols found)"));
+ if (from_tty || info_verbose)
+ printf_filtered ("...");
+ else
+ printf_filtered ("\n");
wrap_here ("");
}
deprecated_post_add_symbol_hook ();
else
{
- printf_unfiltered ("done.\n");
+ printf_unfiltered (_("done.\n"));
}
}
if (deprecated_target_new_objfile_hook)
deprecated_target_new_objfile_hook (objfile);
+ bfd_cache_close_all ();
return (objfile);
}
&& from_tty
&& !query ("Discard symbol table from `%s'? ",
symfile_objfile->name))
- error ("Not confirmed.");
+ error (_("Not confirmed."));
free_all_objfiles ();
/* solib descriptors may have handles to objfiles. Since their
symfile_objfile = NULL;
if (from_tty)
- printf_unfiltered ("No symbol file now.\n");
+ printf_unfiltered (_("No symbol file now.\n"));
}
static char *
}
static char *debug_file_directory = NULL;
+static void
+show_debug_file_directory (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("\
+The directory where separate debug symbols are searched for is \"%s\".\n"),
+ value);
+}
#if ! defined (DEBUG_SUBDIRECTORY)
#define DEBUG_SUBDIRECTORY ".debug"
used in GDB (perhaps "set mapped on", "set readnow on" would be
better), (3) the order of options matters, which is contrary to GNU
conventions (because it is confusing and inconvenient). */
-/* Note: ezannoni 2000-04-17. This function used to have support for
- rombug (see remote-os9k.c). It consisted of a call to target_link()
- (target.c) to get the address of the text segment from the target,
- and pass that to symbol_file_add(). This is no longer supported. */
void
symbol_file_command (char *args, int from_tty)
if (strcmp (*argv, "-readnow") == 0)
flags |= OBJF_READNOW;
else if (**argv == '-')
- error ("unknown option `%s'", *argv);
+ error (_("unknown option `%s'"), *argv);
else
{
name = *argv;
if (name == NULL)
{
- error ("no symbol file name was specified");
+ error (_("no symbol file name was specified"));
}
do_cleanups (cleanups);
}
name = tilde_expand (name); /* Returns 1st new malloc'd copy */
/* Look down path for it, allocate 2nd new malloc'd copy. */
- desc = openp (getenv ("PATH"), 1, name, O_RDONLY | O_BINARY, 0, &absolute_name);
+ desc = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, name, O_RDONLY | O_BINARY,
+ 0, &absolute_name);
#if defined(__GO32__) || defined(_WIN32) || defined (__CYGWIN__)
if (desc < 0)
{
char *exename = alloca (strlen (name) + 5);
strcat (strcpy (exename, name), ".exe");
- desc = openp (getenv ("PATH"), 1, exename, O_RDONLY | O_BINARY,
- 0, &absolute_name);
+ desc = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, exename,
+ O_RDONLY | O_BINARY, 0, &absolute_name);
}
#endif
if (desc < 0)
{
close (desc);
make_cleanup (xfree, name);
- error ("\"%s\": can't open to read symbols: %s.", name,
+ error (_("\"%s\": can't open to read symbols: %s."), name,
bfd_errmsg (bfd_get_error ()));
}
bfd_set_cacheable (sym_bfd, 1);
bfd). */
bfd_close (sym_bfd); /* This also closes desc */
make_cleanup (xfree, name);
- error ("\"%s\": can't read symbols: %s.", name,
+ error (_("\"%s\": can't read symbols: %s."), name,
bfd_errmsg (bfd_get_error ()));
}
return (sym_bfd);
return;
}
}
- error ("I'm sorry, Dave, I can't do that. Symbol format `%s' unknown.",
+ error (_("I'm sorry, Dave, I can't do that. Symbol format `%s' unknown."),
bfd_get_target (objfile->obfd));
}
\f
performance compares. */
static int download_write_size = 512;
+static void
+show_download_write_size (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("\
+The write size used when downloading a program is %s.\n"),
+ value);
+}
static int validate_download = 0;
/* Callback service function for generic_load (bfd_map_over_sections). */
make_cleanup (xfree, check);
if (target_read_memory (lma, check, len) != 0)
- error ("Download verify read failed at 0x%s",
+ error (_("Download verify read failed at 0x%s"),
paddr (lma));
if (memcmp (buffer, check, len) != 0)
- error ("Download verify compare failed at 0x%s",
+ error (_("Download verify compare failed at 0x%s"),
paddr (lma));
do_cleanups (verify_cleanups);
}
if (quit_flag
|| (deprecated_ui_load_progress_hook != NULL
&& deprecated_ui_load_progress_hook (sect_name, sent)))
- error ("Canceled the download");
+ error (_("Canceled the download"));
if (deprecated_show_load_progress != NULL)
deprecated_show_load_progress (sect_name, sent, size,
while (sent < size);
if (err != 0)
- error ("Memory access error while loading section %s.", sect_name);
+ error (_("Memory access error while loading section %s."), sect_name);
do_cleanups (old_chain);
}
cbdata.load_offset = strtoul (offptr, &endptr, 0);
if (offptr == endptr)
- error ("Invalid download offset:%s\n", offptr);
+ error (_("Invalid download offset:%s."), offptr);
*offptr = '\0';
}
else
if (!bfd_check_format (loadfile_bfd, bfd_object))
{
- error ("\"%s\" is not an object file: %s", filename,
+ error (_("\"%s\" is not an object file: %s"), filename,
bfd_errmsg (bfd_get_error ()));
}
dont_repeat ();
if (args == NULL)
- error ("add-symbol-file takes a file name and an address");
+ error (_("add-symbol-file takes a file name and an address"));
/* Make a copy of the string that we can safely write into. */
args = xstrdup (args);
}
}
else
- error ("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*");
+ error (_("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*"));
}
}
argcnt++;
/* Print the prompt for the query below. And save the arguments into
a sect_addr_info structure to be passed around to other
functions. We have to split this up into separate print
- statements because local_hex_string returns a local static
+ statements because hex_string returns a local static
string. */
- printf_unfiltered ("add symbol table from file \"%s\" at\n", filename);
+ printf_unfiltered (_("add symbol table from file \"%s\" at\n"), filename);
section_addrs = alloc_section_addr_info (section_index);
make_cleanup (xfree, section_addrs);
for (i = 0; i < section_index; i++)
section_addrs->other[sec_num].name = sec;
section_addrs->other[sec_num].addr = addr;
printf_unfiltered ("\t%s_addr = %s\n",
- sec,
- local_hex_string ((unsigned long)addr));
+ sec, hex_string ((unsigned long)addr));
sec_num++;
/* The object's sections are initialized when a
}
if (from_tty && (!query ("%s", "")))
- error ("Not confirmed.");
+ error (_("Not confirmed."));
symbol_file_add (filename, from_tty, section_addrs, 0, flags);
#ifdef ADD_SHARED_SYMBOL_FILES
ADD_SHARED_SYMBOL_FILES (args, from_tty);
#else
- error ("This command is not available in this configuration of GDB.");
+ error (_("This command is not available in this configuration of GDB."));
#endif
}
\f
if (res != 0)
{
/* FIXME, should use print_sys_errmsg but it's not filtered. */
- printf_unfiltered ("`%s' has disappeared; keeping its symbols.\n",
+ printf_unfiltered (_("`%s' has disappeared; keeping its symbols.\n"),
objfile->name);
continue;
}
int num_offsets;
char *obfd_filename;
- printf_unfiltered ("`%s' has changed; re-reading symbols.\n",
+ printf_unfiltered (_("`%s' has changed; re-reading symbols.\n"),
objfile->name);
/* There are various functions like symbol_file_add,
BFD without closing the descriptor. */
obfd_filename = bfd_get_filename (objfile->obfd);
if (!bfd_close (objfile->obfd))
- error ("Can't close BFD for %s: %s", objfile->name,
+ error (_("Can't close BFD for %s: %s"), objfile->name,
bfd_errmsg (bfd_get_error ()));
objfile->obfd = bfd_openr (obfd_filename, gnutarget);
if (objfile->obfd == NULL)
- error ("Can't open %s to read symbols.", objfile->name);
+ error (_("Can't open %s to read symbols."), objfile->name);
/* bfd_openr sets cacheable to true, which is what we want. */
if (!bfd_check_format (objfile->obfd, bfd_object))
- error ("Can't read symbols from %s: %s.", objfile->name,
+ error (_("Can't read symbols from %s: %s."), objfile->name,
bfd_errmsg (bfd_get_error ()));
/* Save the offsets, we will nuke them with the rest of the
/* FIXME: Do we have to free a whole linked list, or is this
enough? */
if (objfile->global_psymbols.list)
- xmfree (objfile->md, objfile->global_psymbols.list);
+ xfree (objfile->global_psymbols.list);
memset (&objfile->global_psymbols, 0,
sizeof (objfile->global_psymbols));
if (objfile->static_psymbols.list)
- xmfree (objfile->md, objfile->static_psymbols.list);
+ xfree (objfile->static_psymbols.list);
memset (&objfile->static_psymbols, 0,
sizeof (objfile->static_psymbols));
objfile->free_psymtabs = NULL;
objfile->cp_namespace_symtab = NULL;
objfile->msymbols = NULL;
- objfile->sym_private = NULL;
+ objfile->deprecated_sym_private = NULL;
objfile->minimal_symbol_count = 0;
memset (&objfile->msymbol_hash, 0,
sizeof (objfile->msymbol_hash));
obstack_init (&objfile->objfile_obstack);
if (build_objfile_section_table (objfile))
{
- error ("Can't find the file sections in `%s': %s",
+ error (_("Can't find the file sections in `%s': %s"),
objfile->name, bfd_errmsg (bfd_get_error ()));
}
terminate_minimal_symbol_table (objfile);
if (!have_partial_symbols () && !have_full_symbols ())
{
wrap_here ("");
- printf_unfiltered ("(no debugging symbols found)\n");
+ printf_unfiltered (_("(no debugging symbols found)\n"));
wrap_here ("");
}
objfile->flags |= OBJF_SYMS;
}
if (reread_one)
- clear_symtab_users ();
+ {
+ clear_symtab_users ();
+ /* At least one objfile has changed, so we can consider that
+ the executable we're debugging has changed too. */
+ observer_notify_executable_changed (NULL);
+ }
+
}
}
static char *ext_args;
+static void
+show_ext_args (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("\
+Mapping between filename extension and source language is \"%s\".\n"),
+ value);
+}
static void
-set_ext_lang_command (char *args, int from_tty)
+set_ext_lang_command (char *args, int from_tty, struct cmd_list_element *e)
{
int i;
char *cp = ext_args;
/* First arg is filename extension, starting with '.' */
if (*cp != '.')
- error ("'%s': Filename extension must begin with '.'", ext_args);
+ error (_("'%s': Filename extension must begin with '.'"), ext_args);
/* Find end of first arg. */
while (*cp && !isspace (*cp))
cp++;
if (*cp == '\0')
- error ("'%s': two arguments required -- filename extension and language",
+ error (_("'%s': two arguments required -- filename extension and language"),
ext_args);
/* Null-terminate first arg */
cp++;
if (*cp == '\0')
- error ("'%s': two arguments required -- filename extension and language",
+ error (_("'%s': two arguments required -- filename extension and language"),
ext_args);
/* Lookup the language from among those we know. */
{
int i;
- printf_filtered ("Filename extensions and the languages they represent:");
+ printf_filtered (_("Filename extensions and the languages they represent:"));
printf_filtered ("\n\n");
for (i = 0; i < fl_table_next; i++)
printf_filtered ("\t%s\t- %s\n",
add_filename_language (".pas", language_pascal);
add_filename_language (".p", language_pascal);
add_filename_language (".pp", language_pascal);
+ add_filename_language (".adb", language_ada);
+ add_filename_language (".ads", language_ada);
+ add_filename_language (".a", language_ada);
+ add_filename_language (".ada", language_ada);
}
}
{
/* Someday, we should do better than this, by only blowing away
the things that really need to be blown. */
+
+ /* Clear the "current" symtab first, because it is no longer valid.
+ breakpoint_re_set may try to access the current symtab. */
+ clear_current_source_symtab_and_line ();
+
clear_value_history ();
clear_displays ();
clear_internalvars ();
breakpoint_re_set ();
set_default_breakpoint (0, 0, 0, 0);
- clear_current_source_symtab_and_line ();
clear_pc_function_cache ();
if (deprecated_target_new_objfile_hook)
deprecated_target_new_objfile_hook (NULL);
|| BLOCK_NSYMS (BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK))
|| BLOCK_NSYMS (BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK)))
{
- complaint (&symfile_complaints, "Replacing old symbols for `%s'",
+ complaint (&symfile_complaints, _("Replacing old symbols for `%s'"),
name);
clear_symtab_users_queued++;
make_cleanup (clear_symtab_users_once, 0);
blewit = 1;
}
else
- {
- complaint (&symfile_complaints, "Empty symbol table found for `%s'",
- name);
- }
+ complaint (&symfile_complaints, _("Empty symbol table found for `%s'"),
+ name);
free_symtab (s);
}
if (objfile->global_psymbols.list)
{
- xmfree (objfile->md, objfile->global_psymbols.list);
+ xfree (objfile->global_psymbols.list);
}
if (objfile->static_psymbols.list)
{
- xmfree (objfile->md, objfile->static_psymbols.list);
+ xfree (objfile->static_psymbols.list);
}
/* Current best guess is that approximately a twentieth
{
objfile->global_psymbols.next =
objfile->global_psymbols.list = (struct partial_symbol **)
- xmmalloc (objfile->md, (objfile->global_psymbols.size
- * sizeof (struct partial_symbol *)));
+ xmalloc ((objfile->global_psymbols.size
+ * sizeof (struct partial_symbol *)));
}
if (objfile->static_psymbols.size > 0)
{
objfile->static_psymbols.next =
objfile->static_psymbols.list = (struct partial_symbol **)
- xmmalloc (objfile->md, (objfile->static_psymbols.size
- * sizeof (struct partial_symbol *)));
+ xmalloc ((objfile->static_psymbols.size
+ * sizeof (struct partial_symbol *)));
}
}
name = bfd_section_name (objfile->obfd, osect->the_bfd_section);
printf_filtered ("Section %s, loaded at ", name);
- print_address_numeric (lma, 1, gdb_stdout);
+ deprecated_print_address_numeric (lma, 1, gdb_stdout);
puts_filtered (" - ");
- print_address_numeric (lma + size, 1, gdb_stdout);
+ deprecated_print_address_numeric (lma + size, 1, gdb_stdout);
printf_filtered (", mapped at ");
- print_address_numeric (vma, 1, gdb_stdout);
+ deprecated_print_address_numeric (vma, 1, gdb_stdout);
puts_filtered (" - ");
- print_address_numeric (vma + size, 1, gdb_stdout);
+ deprecated_print_address_numeric (vma + size, 1, gdb_stdout);
puts_filtered ("\n");
nmapped++;
}
if (nmapped == 0)
- printf_filtered ("No sections are mapped.\n");
+ printf_filtered (_("No sections are mapped.\n"));
}
/* Function: map_overlay_command
asection *bfdsec;
if (!overlay_debugging)
- error ("\
+ error (_("\
Overlay debugging not enabled. Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
if (args == 0 || *args == 0)
- error ("Argument required: name of an overlay section");
+ error (_("Argument required: name of an overlay section"));
/* First, find a section matching the user supplied argument */
ALL_OBJSECTIONS (objfile, sec)
sec2->the_bfd_section))
{
if (info_verbose)
- printf_unfiltered ("Note: section %s unmapped by overlap\n",
+ printf_unfiltered (_("Note: section %s unmapped by overlap\n"),
bfd_section_name (objfile->obfd,
sec2->the_bfd_section));
sec2->ovly_mapped = 0; /* sec2 overlaps sec: unmap sec2 */
}
return;
}
- error ("No overlay section called %s", args);
+ error (_("No overlay section called %s"), args);
}
/* Function: unmap_overlay_command
struct obj_section *sec;
if (!overlay_debugging)
- error ("\
+ error (_("\
Overlay debugging not enabled. Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
if (args == 0 || *args == 0)
- error ("Argument required: name of an overlay section");
+ error (_("Argument required: name of an overlay section"));
/* First, find a section matching the user supplied argument */
ALL_OBJSECTIONS (objfile, sec)
if (!strcmp (bfd_section_name (objfile->obfd, sec->the_bfd_section), args))
{
if (!sec->ovly_mapped)
- error ("Section %s is not mapped", args);
+ error (_("Section %s is not mapped"), args);
sec->ovly_mapped = 0;
return;
}
- error ("No overlay section called %s", args);
+ error (_("No overlay section called %s"), args);
}
/* Function: overlay_auto_command
overlay_debugging = ovly_auto;
enable_overlay_breakpoints ();
if (info_verbose)
- printf_unfiltered ("Automatic overlay debugging enabled.");
+ printf_unfiltered (_("Automatic overlay debugging enabled."));
}
/* Function: overlay_manual_command
overlay_debugging = ovly_on;
disable_overlay_breakpoints ();
if (info_verbose)
- printf_unfiltered ("Overlay debugging enabled.");
+ printf_unfiltered (_("Overlay debugging enabled."));
}
/* Function: overlay_off_command
overlay_debugging = ovly_off;
disable_overlay_breakpoints ();
if (info_verbose)
- printf_unfiltered ("Overlay debugging disabled.");
+ printf_unfiltered (_("Overlay debugging disabled."));
}
static void
if (target_overlay_update)
(*target_overlay_update) (NULL);
else
- error ("This target does not know how to read its overlay state.");
+ error (_("This target does not know how to read its overlay state."));
}
/* Function: overlay_command
novlys_msym = lookup_minimal_symbol ("_novlys", NULL, NULL);
if (! novlys_msym)
{
- error ("Error reading inferior's overlay table: "
+ error (_("Error reading inferior's overlay table: "
"couldn't find `_novlys' variable\n"
- "in inferior. Use `overlay manual' mode.");
+ "in inferior. Use `overlay manual' mode."));
return 0;
}
ovly_table_msym = lookup_minimal_symbol ("_ovly_table", NULL, NULL);
if (! ovly_table_msym)
{
- error ("Error reading inferior's overlay table: couldn't find "
+ error (_("Error reading inferior's overlay table: couldn't find "
"`_ovly_table' array\n"
- "in inferior. Use `overlay manual' mode.");
+ "in inferior. Use `overlay manual' mode."));
return 0;
}
{
struct cmd_list_element *c;
- c = add_cmd ("symbol-file", class_files, symbol_file_command,
- "Load symbol table from executable file FILE.\n\
+ c = add_cmd ("symbol-file", class_files, symbol_file_command, _("\
+Load symbol table from executable file FILE.\n\
The `file' command can also load symbol tables, as well as setting the file\n\
-to execute.", &cmdlist);
+to execute."), &cmdlist);
set_cmd_completer (c, filename_completer);
- c = add_cmd ("add-symbol-file", class_files, add_symbol_file_command,
- "Usage: add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR> ...]\n\
+ c = add_cmd ("add-symbol-file", class_files, add_symbol_file_command, _("\
+Usage: add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR> ...]\n\
Load the symbols from FILE, assuming FILE has been dynamically loaded.\n\
ADDR is the starting address of the file's text.\n\
The optional arguments are section-name section-address pairs and\n\
should be specified if the data and bss segments are not contiguous\n\
-with the text. SECT is a section name to be loaded at SECT_ADDR.",
+with the text. SECT is a section name to be loaded at SECT_ADDR."),
&cmdlist);
set_cmd_completer (c, filename_completer);
c = add_cmd ("add-shared-symbol-files", class_files,
- add_shared_symbol_files_command,
- "Load the symbols from shared objects in the dynamic linker's link map.",
+ add_shared_symbol_files_command, _("\
+Load the symbols from shared objects in the dynamic linker's link map."),
&cmdlist);
c = add_alias_cmd ("assf", "add-shared-symbol-files", class_files, 1,
&cmdlist);
- c = add_cmd ("load", class_files, load_command,
- "Dynamically load FILE into the running program, and record its symbols\n\
-for access from GDB.", &cmdlist);
+ c = add_cmd ("load", class_files, load_command, _("\
+Dynamically load FILE into the running program, and record its symbols\n\
+for access from GDB."), &cmdlist);
set_cmd_completer (c, filename_completer);
- add_show_from_set
- (add_set_cmd ("symbol-reloading", class_support, var_boolean,
- (char *) &symbol_reloading,
- "Set dynamic symbol table reloading multiple times in one run.",
- &setlist),
- &showlist);
+ add_setshow_boolean_cmd ("symbol-reloading", class_support,
+ &symbol_reloading, _("\
+Set dynamic symbol table reloading multiple times in one run."), _("\
+Show dynamic symbol table reloading multiple times in one run."), NULL,
+ NULL,
+ show_symbol_reloading,
+ &setlist, &showlist);
add_prefix_cmd ("overlay", class_support, overlay_command,
- "Commands for debugging overlays.", &overlaylist,
+ _("Commands for debugging overlays."), &overlaylist,
"overlay ", 0, &cmdlist);
add_com_alias ("ovly", "overlay", class_alias, 1);
add_com_alias ("ov", "overlay", class_alias, 1);
add_cmd ("map-overlay", class_support, map_overlay_command,
- "Assert that an overlay section is mapped.", &overlaylist);
+ _("Assert that an overlay section is mapped."), &overlaylist);
add_cmd ("unmap-overlay", class_support, unmap_overlay_command,
- "Assert that an overlay section is unmapped.", &overlaylist);
+ _("Assert that an overlay section is unmapped."), &overlaylist);
add_cmd ("list-overlays", class_support, list_overlays_command,
- "List mappings of overlay sections.", &overlaylist);
+ _("List mappings of overlay sections."), &overlaylist);
add_cmd ("manual", class_support, overlay_manual_command,
- "Enable overlay debugging.", &overlaylist);
+ _("Enable overlay debugging."), &overlaylist);
add_cmd ("off", class_support, overlay_off_command,
- "Disable overlay debugging.", &overlaylist);
+ _("Disable overlay debugging."), &overlaylist);
add_cmd ("auto", class_support, overlay_auto_command,
- "Enable automatic overlay debugging.", &overlaylist);
+ _("Enable automatic overlay debugging."), &overlaylist);
add_cmd ("load-target", class_support, overlay_load_command,
- "Read the overlay mapping state from the target.", &overlaylist);
+ _("Read the overlay mapping state from the target."), &overlaylist);
/* Filename extension to source language lookup table: */
init_filename_language_table ();
- c = add_set_cmd ("extension-language", class_files, var_string_noescape,
- (char *) &ext_args,
- "Set mapping between filename extension and source language.\n\
-Usage: set extension-language .foo bar",
- &setlist);
- set_cmd_cfunc (c, set_ext_lang_command);
+ add_setshow_string_noescape_cmd ("extension-language", class_files,
+ &ext_args, _("\
+Set mapping between filename extension and source language."), _("\
+Show mapping between filename extension and source language."), _("\
+Usage: set extension-language .foo bar"),
+ set_ext_lang_command,
+ show_ext_args,
+ &setlist, &showlist);
add_info ("extensions", info_ext_lang_command,
- "All filename extensions associated with a source language.");
-
- add_show_from_set
- (add_set_cmd ("download-write-size", class_obscure,
- var_integer, (char *) &download_write_size,
- "Set the write size used when downloading a program.\n"
- "Only used when downloading a program onto a remote\n"
- "target. Specify zero, or a negative value, to disable\n"
- "blocked writes. The actual size of each transfer is also\n"
- "limited by the size of the target packet and the memory\n"
- "cache.\n",
- &setlist),
- &showlist);
+ _("All filename extensions associated with a source language."));
+
+ add_setshow_integer_cmd ("download-write-size", class_obscure,
+ &download_write_size, _("\
+Set the write size used when downloading a program."), _("\
+Show the write size used when downloading a program."), _("\
+Only used when downloading a program onto a remote\n\
+target. Specify zero, or a negative value, to disable\n\
+blocked writes. The actual size of each transfer is also\n\
+limited by the size of the target packet and the memory\n\
+cache."),
+ NULL,
+ show_download_write_size,
+ &setlist, &showlist);
debug_file_directory = xstrdup (DEBUGDIR);
- c = (add_set_cmd
- ("debug-file-directory", class_support, var_string,
- (char *) &debug_file_directory,
- "Set the directory where separate debug symbols are searched for.\n"
- "Separate debug symbols are first searched for in the same\n"
- "directory as the binary, then in the `" DEBUG_SUBDIRECTORY
- "' subdirectory,\n"
- "and lastly at the path of the directory of the binary with\n"
- "the global debug-file directory prepended\n",
- &setlist));
- add_show_from_set (c, &showlist);
- set_cmd_completer (c, filename_completer);
+ add_setshow_optional_filename_cmd ("debug-file-directory", class_support,
+ &debug_file_directory, _("\
+Set the directory where separate debug symbols are searched for."), _("\
+Show the directory where separate debug symbols are searched for."), _("\
+Separate debug symbols are first searched for in the same\n\
+directory as the binary, then in the `" DEBUG_SUBDIRECTORY "' subdirectory,\n\
+and lastly at the path of the directory of the binary with\n\
+the global debug-file directory prepended."),
+ NULL,
+ show_debug_file_directory,
+ &setlist, &showlist);
}