Add the fullname_syntax testsuite variable. This allows GDB to make sure
[deliverable/binutils-gdb.git] / gdb / dwarf2read.c
index 564d3ac7cd33838136b48f1c486ca79539f7c07c..a6a76842eea63196bda404f95f5ff11649194848 100644 (file)
@@ -659,6 +659,15 @@ static struct dwarf2_queue_item *dwarf2_queue, *dwarf2_queue_tail;
    sizes of up to at least twenty will improve startup time for
    typical inter-CU-reference binaries, at an obvious memory cost.  */
 static int dwarf2_max_cache_age = 5;
+static void
+show_dwarf2_max_cache_age (struct ui_file *file, int from_tty,
+                          struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("\
+The upper bound on the age of cached dwarf2 compilation units is %s.\n"),
+                   value);
+}
+
 
 /* Various complaints about symbol reading that don't abort the process */
 
@@ -666,13 +675,13 @@ static void
 dwarf2_statement_list_fits_in_line_number_section_complaint (void)
 {
   complaint (&symfile_complaints,
-            "statement list doesn't fit in .debug_line section");
+            _("statement list doesn't fit in .debug_line section"));
 }
 
 static void
 dwarf2_complex_location_expr_complaint (void)
 {
-  complaint (&symfile_complaints, "location expression too complex");
+  complaint (&symfile_complaints, _("location expression too complex"));
 }
 
 static void
@@ -680,7 +689,7 @@ dwarf2_const_value_length_mismatch_complaint (const char *arg1, int arg2,
                                              int arg3)
 {
   complaint (&symfile_complaints,
-            "const value length mismatch for '%s', got %d, expected %d", arg1,
+            _("const value length mismatch for '%s', got %d, expected %d"), arg1,
             arg2, arg3);
 }
 
@@ -688,14 +697,14 @@ static void
 dwarf2_macros_too_long_complaint (void)
 {
   complaint (&symfile_complaints,
-            "macro info runs off end of `.debug_macinfo' section");
+            _("macro info runs off end of `.debug_macinfo' section"));
 }
 
 static void
 dwarf2_macro_malformed_definition_complaint (const char *arg1)
 {
   complaint (&symfile_complaints,
-            "macro debug info contains a malformed macro definition:\n`%s'",
+            _("macro debug info contains a malformed macro definition:\n`%s'"),
             arg1);
 }
 
@@ -703,7 +712,7 @@ static void
 dwarf2_invalid_attrib_class_complaint (const char *arg1, const char *arg2)
 {
   complaint (&symfile_complaints,
-            "invalid attribute class or form for '%s' in '%s'", arg1, arg2);
+            _("invalid attribute class or form for '%s' in '%s'"), arg1, arg2);
 }
 
 /* local function prototypes */
@@ -1282,7 +1291,7 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
   signed_addr = bfd_get_sign_extend_vma (abfd);
   if (signed_addr < 0)
     internal_error (__FILE__, __LINE__,
-                   "read_comp_unit_head: dwarf from non elf file");
+                   _("read_comp_unit_head: dwarf from non elf file"));
   cu_header->signed_addr_p = signed_addr;
   return info_ptr;
 }
@@ -1533,6 +1542,9 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline)
          also happen.) This happens in VxWorks.  */
       free_named_symtabs (pst->filename);
 
+      info_ptr = beg_of_comp_unit + cu.header.length
+                                  + cu.header.initial_length_size;
+
       if (comp_unit_die.has_stmt_list)
         {
           /* Get the list of files included in the current compilation unit,
@@ -1540,9 +1552,6 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline)
           dwarf2_build_include_psymtabs (&cu, &comp_unit_die, pst);
         }
 
-      info_ptr = beg_of_comp_unit + cu.header.length
-                                  + cu.header.initial_length_size;
-
       do_cleanups (back_to_inner);
     }
   do_cleanups (back_to);
@@ -1632,6 +1641,7 @@ create_all_comp_units (struct objfile *objfile)
 
       /* Read just enough information to find out where the next
         compilation unit is.  */
+      cu_header.initial_length_size = 0;
       cu_header.length = read_initial_length (objfile->obfd, info_ptr,
                                              &cu_header, &bytes_read);
 
@@ -1819,7 +1829,7 @@ partial_die_parent_scope (struct partial_die_info *pdi,
         function-local names?  For partial symbols, we should probably be
         ignoring them.  */
       complaint (&symfile_complaints,
-                "unhandled containing DIE tag %d for DIE at %d",
+                _("unhandled containing DIE tag %d for DIE at %d"),
                 parent->tag, pdi->offset);
       parent->scope = grandparent_scope;
     }
@@ -2123,7 +2133,7 @@ add_partial_enumeration (struct partial_die_info *enum_pdi,
   while (pdi)
     {
       if (pdi->tag != DW_TAG_enumerator || pdi->name == NULL)
-       complaint (&symfile_complaints, "malformed enumerator DIE ignored");
+       complaint (&symfile_complaints, _("malformed enumerator DIE ignored"));
       else
        add_partial_symbol (pdi, cu);
       pdi = pdi->die_sibling;
@@ -2200,7 +2210,7 @@ skip_one_die (char *info_ptr, struct abbrev_info *abbrev,
          read_attribute (&attr, &abbrev->attrs[i],
                          abfd, info_ptr, cu);
          if (attr.form == DW_FORM_ref_addr)
-           complaint (&symfile_complaints, "ignoring absolute DW_AT_sibling");
+           complaint (&symfile_complaints, _("ignoring absolute DW_AT_sibling"));
          else
            return dwarf2_per_objfile->info_buffer
              + dwarf2_get_ref_die_offset (&attr, cu);
@@ -2315,7 +2325,7 @@ dwarf2_psymtab_to_symtab (struct partial_symtab *pst)
        {
          if (info_verbose)
            {
-             printf_filtered ("Reading in symbols for %s...", pst->filename);
+             printf_filtered (_("Reading in symbols for %s..."), pst->filename);
              gdb_flush (gdb_stdout);
            }
 
@@ -2327,7 +2337,7 @@ dwarf2_psymtab_to_symtab (struct partial_symtab *pst)
 
          /* Finish up the debug error message.  */
          if (info_verbose)
-           printf_filtered ("done.\n");
+           printf_filtered (_("done.\n"));
        }
     }
 }
@@ -2438,6 +2448,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst)
         /* Inform about additional files that need to be read in.  */
         if (info_verbose)
           {
+           /* FIXME: i18n: Need to make this a single string.  */
             fputs_filtered (" ", gdb_stdout);
             wrap_here ("");
             fputs_filtered ("and ", gdb_stdout);
@@ -3064,7 +3075,7 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
          if (offset >= dwarf2_per_objfile->ranges_size)
            {
              complaint (&symfile_complaints,
-                        "Offset %d out of bounds for DW_AT_ranges attribute",
+                        _("Offset %d out of bounds for DW_AT_ranges attribute"),
                         offset);
              return 0;
            }
@@ -3116,7 +3127,7 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
                  /* We have no valid base address for the ranges
                     data.  */
                  complaint (&symfile_complaints,
-                            "Invalid .debug_ranges data (no base address)");
+                            _("Invalid .debug_ranges data (no base address)"));
                  return 0;
                }
 
@@ -3472,7 +3483,7 @@ dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
        default:
          /* Unknown accessibility.  Complain and treat it as public.  */
          {
-           complaint (&symfile_complaints, "unsupported accessibility %d",
+           complaint (&symfile_complaints, _("unsupported accessibility %d"),
                       fip->fields->accessibility);
          }
          break;
@@ -3581,7 +3592,7 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
        fnp->voffset = VOFFSET_STATIC;
     }
   else
-    complaint (&symfile_complaints, "member function type missing for '%s'",
+    complaint (&symfile_complaints, _("member function type missing for '%s'"),
               physname);
 
   /* Get fcontext from DW_AT_containing_type if present.  */
@@ -3844,7 +3855,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
                  /* Complain if virtual function table field not found.  */
                  if (i < TYPE_N_BASECLASSES (t))
                    complaint (&symfile_complaints,
-                              "virtual function table pointer not found when defining class '%s'",
+                              _("virtual function table pointer not found when defining class '%s'"),
                               TYPE_TAG_NAME (type) ? TYPE_TAG_NAME (type) :
                               "");
                }
@@ -4398,7 +4409,7 @@ read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu)
        }
       else if (TYPE_LENGTH (type) != byte_size)
        {
-         complaint (&symfile_complaints, "invalid pointer size %d", byte_size);
+         complaint (&symfile_complaints, _("invalid pointer size %d"), byte_size);
        }
       else {
        /* Should we also complain about unhandled address classes?  */
@@ -4704,7 +4715,7 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
          type_flags |= TYPE_FLAG_UNSIGNED;
          break;
        default:
-         complaint (&symfile_complaints, "unsupported DW_AT_encoding: '%s'",
+         complaint (&symfile_complaints, _("unsupported DW_AT_encoding: '%s'"),
                     dwarf_type_encoding_name (encoding));
          break;
        }
@@ -4751,7 +4762,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
   if (base_type == NULL)
     {
       complaint (&symfile_complaints,
-                "DW_AT_type missing from DW_TAG_subrange_type");
+                _("DW_AT_type missing from DW_TAG_subrange_type"));
       return;
     }
 
@@ -5219,7 +5230,7 @@ load_partial_dies (bfd *abfd, char *info_ptr, int building_psymtab,
          && parent_die->has_specification == 0)
        {
          if (part_die->name == NULL)
-           complaint (&symfile_complaints, "malformed enumerator DIE ignored");
+           complaint (&symfile_complaints, _("malformed enumerator DIE ignored"));
          else if (building_psymtab)
            add_psymbol_to_list (part_die->name, strlen (part_die->name),
                                 VAR_DOMAIN, LOC_CONST,
@@ -5399,7 +5410,7 @@ read_partial_die (struct partial_die_info *part_die,
          /* Ignore absolute siblings, they might point outside of
             the current compile unit.  */
          if (attr.form == DW_FORM_ref_addr)
-           complaint (&symfile_complaints, "ignoring absolute DW_AT_sibling");
+           complaint (&symfile_complaints, _("ignoring absolute DW_AT_sibling"));
          else
            part_die->sibling = dwarf2_per_objfile->info_buffer
              + dwarf2_get_ref_die_offset (&attr, cu);
@@ -5442,7 +5453,7 @@ find_partial_die_in_comp_unit (unsigned long offset, struct dwarf2_cu *cu)
 
   if (lookup_die == NULL)
     internal_error (__FILE__, __LINE__,
-                   "could not find partial DIE in cache\n");
+                   _("could not find partial DIE in cache\n"));
 
   return lookup_die;
 }
@@ -5797,7 +5808,7 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, int *bytes_read)
          break;
        default:
          internal_error (__FILE__, __LINE__,
-                         "read_address: bad switch, signed [in module %s]",
+                         _("read_address: bad switch, signed [in module %s]"),
                          bfd_get_filename (abfd));
        }
     }
@@ -5816,7 +5827,7 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, int *bytes_read)
          break;
        default:
          internal_error (__FILE__, __LINE__,
-                         "read_address: bad switch, unsigned [in module %s]",
+                         _("read_address: bad switch, unsigned [in module %s]"),
                          bfd_get_filename (abfd));
        }
     }
@@ -5850,7 +5861,7 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, int *bytes_read)
    As a side effect, this function sets the fields initial_length_size
    and offset_size in cu_header to the values appropriate for the
    length field.  (The format of the initial length field determines
-   the width of file offsets to be fetched later with fetch_offset().)
+   the width of file offsets to be fetched later with read_offset().)
    
    [ Note:  read_initial_length() and read_offset() are based on the
      document entitled "DWARF Debugging Information Format", revision
@@ -5872,43 +5883,41 @@ static LONGEST
 read_initial_length (bfd *abfd, char *buf, struct comp_unit_head *cu_header,
                      int *bytes_read)
 {
-  LONGEST retval = 0;
-
-  retval = bfd_get_32 (abfd, (bfd_byte *) buf);
+  LONGEST length = bfd_get_32 (abfd, (bfd_byte *) buf);
 
-  if (retval == 0xffffffff)
+  if (length == 0xffffffff)
     {
-      retval = bfd_get_64 (abfd, (bfd_byte *) buf + 4);
+      length = bfd_get_64 (abfd, (bfd_byte *) buf + 4);
       *bytes_read = 12;
-      if (cu_header != NULL)
-       {
-         cu_header->initial_length_size = 12;
-         cu_header->offset_size = 8;
-       }
     }
-  else if (retval == 0)
+  else if (length == 0)
     {
-      /* Handle (non-standard) 64-bit DWARF2 formats such as that used
-         by IRIX.  */
-      retval = bfd_get_64 (abfd, (bfd_byte *) buf);
+      /* Handle the (non-standard) 64-bit DWARF2 format used by IRIX.  */
+      length = bfd_get_64 (abfd, (bfd_byte *) buf);
       *bytes_read = 8;
-      if (cu_header != NULL)
-       {
-         cu_header->initial_length_size = 8;
-         cu_header->offset_size = 8;
-       }
     }
   else
     {
       *bytes_read = 4;
-      if (cu_header != NULL)
-       {
-         cu_header->initial_length_size = 4;
-         cu_header->offset_size = 4;
-       }
     }
 
-  return retval;
+  if (cu_header)
+    {
+      gdb_assert (cu_header->initial_length_size == 0
+                 || cu_header->initial_length_size == 4
+                 || cu_header->initial_length_size == 8
+                 || cu_header->initial_length_size == 12);
+
+      if (cu_header->initial_length_size != 0
+         && cu_header->initial_length_size != *bytes_read)
+       complaint (&symfile_complaints,
+                  _("intermixed 32-bit and 64-bit DWARF sections"));
+
+      cu_header->initial_length_size = *bytes_read;
+      cu_header->offset_size = (*bytes_read == 4) ? 4 : 8;
+    }
+
+  return length;
 }
 
 /* Read an offset from the data stream.  The size of the offset is
@@ -5932,7 +5941,7 @@ read_offset (bfd *abfd, char *buf, const struct comp_unit_head *cu_header,
       break;
     default:
       internal_error (__FILE__, __LINE__,
-                     "read_offset: bad switch [in module %s]",
+                     _("read_offset: bad switch [in module %s]"),
                      bfd_get_filename (abfd));
     }
 
@@ -6266,7 +6275,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
 
   if (dwarf2_per_objfile->line_buffer == NULL)
     {
-      complaint (&symfile_complaints, "missing .debug_line section");
+      complaint (&symfile_complaints, _("missing .debug_line section"));
       return 0;
     }
 
@@ -6286,7 +6295,8 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
   line_ptr = dwarf2_per_objfile->line_buffer + offset;
 
   /* Read in the header.  */
-  lh->total_length = read_initial_length (abfd, line_ptr, NULL, &bytes_read);
+  lh->total_length = 
+    read_initial_length (abfd, line_ptr, &cu->header, &bytes_read);
   line_ptr += bytes_read;
   if (line_ptr + lh->total_length > (dwarf2_per_objfile->line_buffer
                                     + dwarf2_per_objfile->line_size))
@@ -6348,7 +6358,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
   if (line_ptr > (dwarf2_per_objfile->line_buffer
                  + dwarf2_per_objfile->line_size))
     complaint (&symfile_complaints,
-              "line number info header doesn't fit in `.debug_line' section");
+              _("line number info header doesn't fit in `.debug_line' section"));
 
   discard_cleanups (back_to);
   return lh;
@@ -6394,7 +6404,7 @@ check_cu_functions (CORE_ADDR address, struct dwarf2_cu *cu)
     return address;
   if (address != fn->lowpc)
     complaint (&symfile_complaints,
-              "misplaced first line number at 0x%lx for '%s'",
+              _("misplaced first line number at 0x%lx for '%s'"),
               (unsigned long) address, fn->name);
   fn->seen_line = 1;
   return fn->lowpc;
@@ -6526,7 +6536,7 @@ dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd,
                  break;
                default:
                  complaint (&symfile_complaints,
-                            "mangled .debug_line section");
+                            _("mangled .debug_line section"));
                  return;
                }
              break;
@@ -6612,9 +6622,29 @@ dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd,
       for (file_index = 0; file_index < lh->num_file_names; file_index++)
         if (lh->file_names[file_index].included_p == 1)
           {
-            char *include_name = lh->file_names [file_index].name;
-    
-            if (strcmp (include_name, pst->filename) != 0)
+            const struct file_entry fe = lh->file_names [file_index];
+            char *include_name = fe.name;
+            char *dir_name = NULL;
+            char *pst_filename = pst->filename;
+
+            if (fe.dir_index)
+              dir_name = lh->include_dirs[fe.dir_index - 1];
+
+            if (!IS_ABSOLUTE_PATH (include_name) && dir_name != NULL)
+              {
+                include_name =
+                  concat (dir_name, SLASH_STRING, include_name, NULL);
+                make_cleanup (xfree, include_name);
+              }
+
+            if (!IS_ABSOLUTE_PATH (pst_filename) && pst->dirname != NULL)
+              {
+                pst_filename =
+                  concat (pst->dirname, SLASH_STRING, pst_filename, NULL);
+                make_cleanup (xfree, pst_filename);
+              }
+
+            if (strcmp (include_name, pst_filename) != 0)
               dwarf2_create_include_psymtab (include_name, pst, objfile);
           }
     }
@@ -6923,7 +6953,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
                   this objfile, so we don't need to duplicate it for
                   the type.  */
                if (TYPE_NAME (SYMBOL_TYPE (sym)) == 0)
-                 TYPE_NAME (SYMBOL_TYPE (sym)) = SYMBOL_NATURAL_NAME (sym);
+                 TYPE_NAME (SYMBOL_TYPE (sym)) = SYMBOL_SEARCH_NAME (sym);
                add_symbol_to_list (typedef_sym, list_to_add);
              }
          }
@@ -6982,7 +7012,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
             trash data, but since we must specifically ignore things
             we don't recognize, there is nothing else we should do at
             this point. */
-         complaint (&symfile_complaints, "unsupported tag: '%s'",
+         complaint (&symfile_complaints, _("unsupported tag: '%s'"),
                     dwarf_tag_name (die->tag));
          break;
        }
@@ -7062,7 +7092,7 @@ dwarf2_const_value (struct attribute *attr, struct symbol *sym,
 
     default:
       complaint (&symfile_complaints,
-                "unsupported const value attribute form: '%s'",
+                _("unsupported const value attribute form: '%s'"),
                 dwarf_form_name (attr->form));
       SYMBOL_VALUE (sym) = 0;
       SYMBOL_CLASS (sym) = LOC_CONST;
@@ -7220,7 +7250,7 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
       read_base_type (die, cu);
       break;
     default:
-      complaint (&symfile_complaints, "unexepected tag in read_type_die: '%s'",
+      complaint (&symfile_complaints, _("unexepected tag in read_type_die: '%s'"),
                 dwarf_tag_name (die->tag));
       break;
     }
@@ -8334,7 +8364,7 @@ dump_die (struct die_info *die)
        case DW_FORM_ref_addr:
        case DW_FORM_addr:
          fprintf_unfiltered (gdb_stderr, "address: ");
-         print_address_numeric (DW_ADDR (&die->attrs[i]), 1, gdb_stderr);
+         deprecated_print_address_numeric (DW_ADDR (&die->attrs[i]), 1, gdb_stderr);
          break;
        case DW_FORM_block2:
        case DW_FORM_block4:
@@ -8424,7 +8454,7 @@ dwarf2_get_ref_die_offset (struct attribute *attr, struct dwarf2_cu *cu)
       break;
     default:
       complaint (&symfile_complaints,
-                "unsupported die ref attribute form: '%s'",
+                _("unsupported die ref attribute form: '%s'"),
                 dwarf_form_name (attr->form));
     }
   return result;
@@ -8446,7 +8476,7 @@ dwarf2_get_attr_constant_value (struct attribute *attr, int default_value)
     return DW_UNSND (attr);
   else
     {
-      complaint (&symfile_complaints, "Attribute value is not a constant (%s)",
+      complaint (&symfile_complaints, _("Attribute value is not a constant (%s)"),
                  dwarf_form_name (attr->form));
       return default_value;
     }
@@ -8731,7 +8761,7 @@ decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
           break;
 
        default:
-         complaint (&symfile_complaints, "unsupported stack op: '%s'",
+         complaint (&symfile_complaints, _("unsupported stack op: '%s'"),
                     dwarf_stack_op_name (op));
          return (stack[stacki]);
        }
@@ -8860,7 +8890,7 @@ consume_improper_spaces (const char *p, const char *body)
   if (*p == ' ')
     {
       complaint (&symfile_complaints,
-                "macro definition contains spaces in formal argument list:\n`%s'",
+                _("macro definition contains spaces in formal argument list:\n`%s'"),
                 body);
 
       while (*p == ' ')
@@ -9022,7 +9052,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
 
   if (dwarf2_per_objfile->macinfo_buffer == NULL)
     {
-      complaint (&symfile_complaints, "missing .debug_macinfo section");
+      complaint (&symfile_complaints, _("missing .debug_macinfo section"));
       return;
     }
 
@@ -9065,7 +9095,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
 
             if (! current_file)
              complaint (&symfile_complaints,
-                        "debug info gives macro %s outside of any file: %s",
+                        _("debug info gives macro %s outside of any file: %s"),
                         macinfo_type ==
                         DW_MACINFO_define ? "definition" : macinfo_type ==
                         DW_MACINFO_undef ? "undefinition" :
@@ -9099,7 +9129,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
         case DW_MACINFO_end_file:
           if (! current_file)
            complaint (&symfile_complaints,
-                      "macro debug info has an unmatched `close_file' directive");
+                      _("macro debug info has an unmatched `close_file' directive"));
           else
             {
               current_file = current_file->included_by;
@@ -9124,7 +9154,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
                   next_type = read_1_byte (abfd, mac_ptr);
                   if (next_type != 0)
                    complaint (&symfile_complaints,
-                              "no terminating 0-type entry for macros in `.debug_macinfo' section");
+                              _("no terminating 0-type entry for macros in `.debug_macinfo' section"));
 
                   return;
                 }
@@ -9180,7 +9210,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
       baton->base_address = cu->header.base_address;
       if (cu->header.base_known == 0)
        complaint (&symfile_complaints,
-                  "Location list used without specifying the CU base address.");
+                  _("Location list used without specifying the CU base address."));
 
       SYMBOL_OPS (sym) = &dwarf2_loclist_funcs;
       SYMBOL_LOCATION_BATON (sym) = baton;
@@ -9629,30 +9659,27 @@ _initialize_dwarf2_read (void)
 {
   dwarf2_objfile_data_key = register_objfile_data ();
 
-  add_prefix_cmd ("dwarf2", class_maintenance, set_dwarf2_cmd,
-                 "Set DWARF 2 specific variables.\n"
-                 "Configure DWARF 2 variables such as the cache size",
+  add_prefix_cmd ("dwarf2", class_maintenance, set_dwarf2_cmd, _("\
+Set DWARF 2 specific variables.\n\
+Configure DWARF 2 variables such as the cache size"),
                   &set_dwarf2_cmdlist, "maintenance set dwarf2 ",
                   0/*allow-unknown*/, &maintenance_set_cmdlist);
 
-  add_prefix_cmd ("dwarf2", class_maintenance, show_dwarf2_cmd,
-                 "Show DWARF 2 specific variables\n"
-                 "Show DWARF 2 variables such as the cache size",
+  add_prefix_cmd ("dwarf2", class_maintenance, show_dwarf2_cmd, _("\
+Show DWARF 2 specific variables\n\
+Show DWARF 2 variables such as the cache size"),
                   &show_dwarf2_cmdlist, "maintenance show dwarf2 ",
                   0/*allow-unknown*/, &maintenance_show_cmdlist);
 
   add_setshow_zinteger_cmd ("max-cache-age", class_obscure,
-                           &dwarf2_max_cache_age,
-                           "Set the upper bound on the age of cached "
-                           "dwarf2 compilation units.",
-                           "Show the upper bound on the age of cached "
-                           "dwarf2 compilation units.",
-                           "A higher limit means that cached "
-                           "compilation units will be stored\n"
-                           "in memory longer, and more total memory will "
-                           "be used.  Zero disables\n"
-                           "caching, which can slow down startup.",
-                           NULL, /* PRINT: The upper bound on the age of cached dwarf2 compilation units is %d.  */
-                           NULL, NULL, &set_dwarf2_cmdlist,
+                           &dwarf2_max_cache_age, _("\
+Set the upper bound on the age of cached dwarf2 compilation units."), _("\
+Show the upper bound on the age of cached dwarf2 compilation units."), _("\
+A higher limit means that cached compilation units will be stored\n\
+in memory longer, and more total memory will be used.  Zero disables\n\
+caching, which can slow down startup."),
+                           NULL,
+                           show_dwarf2_max_cache_age,
+                           &set_dwarf2_cmdlist,
                            &show_dwarf2_cmdlist);
 }
This page took 0.034445 seconds and 4 git commands to generate.