change delegation for to_read_description
[deliverable/binutils-gdb.git] / binutils / dwarf.c
index c78f1243d248299ab45562b96a02ad5b28b828b1..387504fc6303b1f17c872b4d06380fcd02f01c8c 100644 (file)
@@ -560,8 +560,6 @@ fetch_indirect_string (dwarf_vma offset)
   if (section->start == NULL)
     return (const unsigned char *) _("<no .debug_str section>");
 
-  /* DWARF sections under Mach-O have non-zero addresses.  */
-  offset -= section->address;
   if (offset > section->size)
     {
       warn (_("DW_FORM_strp offset too big: %s\n"),
@@ -587,8 +585,6 @@ fetch_indexed_string (dwarf_vma idx, struct cu_tu_set *this_set,
     return (dwo ? _("<no .debug_str_offsets.dwo section>")
                : _("<no .debug_str_offsets section>"));
 
-  /* DWARF sections under Mach-O have non-zero addresses.  */
-  index_offset -= index_section->address;
   if (this_set != NULL)
     index_offset += this_set->section_offsets [DW_SECT_STR_OFFSETS];
   if (index_offset > index_section->size)
@@ -1472,7 +1468,7 @@ read_and_display_attr_value (unsigned long attribute,
   unsigned char * orig_data = data;
   unsigned int bytes_read;
 
-  if (data == end)
+  if (data == end && form != DW_FORM_flag_present)
     {
       warn (_("corrupt attribute\n"));
       return data;
@@ -1809,11 +1805,10 @@ read_and_display_attr_value (unsigned long attribute,
     return data;
 
   /* For some attributes we can display further information.  */
-  printf ("\t");
-
   switch (attribute)
     {
     case DW_AT_inline:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_INL_not_inlined:
@@ -1836,6 +1831,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_language:
+      printf ("\t");
       switch (uvalue)
        {
          /* Ordered by the numeric value of these constants.  */
@@ -1879,6 +1875,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_encoding:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_ATE_void:               printf ("(void)"); break;
@@ -1919,6 +1916,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_accessibility:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_ACCESS_public:          printf ("(public)"); break;
@@ -1931,6 +1929,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_visibility:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_VIS_local:              printf ("(local)"); break;
@@ -1941,6 +1940,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_virtuality:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_VIRTUALITY_none:        printf ("(none)"); break;
@@ -1951,6 +1951,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_identifier_case:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_ID_case_sensitive:      printf ("(case_sensitive)"); break;
@@ -1962,6 +1963,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_calling_convention:
+      printf ("\t");
       switch (uvalue)
        {
        case DW_CC_normal:      printf ("(normal)"); break;
@@ -1977,6 +1979,7 @@ read_and_display_attr_value (unsigned long attribute,
       break;
 
     case DW_AT_ordering:
+      printf ("\t");
       switch (uvalue)
        {
        case -1: printf (_("(undefined)")); break;
@@ -2002,7 +2005,7 @@ read_and_display_attr_value (unsigned long attribute,
       if ((dwarf_version < 4
            && (form == DW_FORM_data4 || form == DW_FORM_data8))
          || form == DW_FORM_sec_offset)
-       printf (_("(location list)"));
+       printf (_(" (location list)"));
       /* Fall through.  */
     case DW_AT_allocated:
     case DW_AT_associated:
@@ -2014,7 +2017,7 @@ read_and_display_attr_value (unsigned long attribute,
        {
          int need_frame_base;
 
-         printf ("(");
+         printf ("\t(");
          need_frame_base = decode_location_expression (block_start,
                                                        pointer_size,
                                                        offset_size,
@@ -2050,7 +2053,7 @@ read_and_display_attr_value (unsigned long attribute,
 
            abbrev_number = read_uleb128 (section->start + uvalue, NULL, end);
 
-           printf (_("[Abbrev Number: %ld"), abbrev_number);
+           printf (_("\t[Abbrev Number: %ld"), abbrev_number);
            /* Don't look up abbrev for DW_FORM_ref_addr, as it very often will
               use different abbrev table, and we don't track .debug_info chunks
               yet.  */
@@ -2367,8 +2370,7 @@ process_debug_info (struct dwarf_section *section,
 
       free_abbrevs ();
 
-      /* Process the abbrevs used by this compilation unit. DWARF
-        sections under Mach-O have non-zero addresses.  */
+      /* Process the abbrevs used by this compilation unit.  */
       if (compunit.cu_abbrev_offset >= abbrev_size)
        warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section size (%lx)\n"),
              (unsigned long) compunit.cu_abbrev_offset,
@@ -4431,9 +4433,8 @@ display_debug_loc (struct dwarf_section *section, void *file)
   if (!seen_first_offset)
     error (_("No location lists in .debug_info section!\n"));
 
-  /* DWARF sections under Mach-O have non-zero addresses.  */
   if (debug_information [first].num_loc_offsets > 0
-      && debug_information [first].loc_offsets [0] != section->address)
+      && debug_information [first].loc_offsets [0] != 0)
     warn (_("Location lists in %s section start at 0x%s\n"),
          section->name,
          dwarf_vmatoa ("x", debug_information [first].loc_offsets [0]));
@@ -4468,8 +4469,7 @@ display_debug_loc (struct dwarf_section *section, void *file)
                 == debug_information [i].loc_offsets [j])
            continue;
          has_frame_base = debug_information [i].have_frame_base [j];
-         /* DWARF sections under Mach-O have non-zero addresses.  */
-         offset = debug_information [i].loc_offsets [j] - section->address;
+         offset = debug_information [i].loc_offsets [j];
          next = section_begin + offset;
          base_address = debug_information [i].base_address;
 
@@ -4877,8 +4877,7 @@ display_debug_ranges (struct dwarf_section *section,
   qsort (range_entries, num_range_list, sizeof (*range_entries),
         range_entry_compar);
 
-  /* DWARF sections under Mach-O have non-zero addresses.  */
-  if (dwarf_check != 0 && range_entries[0].ranges_offset != section->address)
+  if (dwarf_check != 0 && range_entries[0].ranges_offset != 0)
     warn (_("Range lists in %s section start at 0x%lx\n"),
          section->name, range_entries[0].ranges_offset);
 
@@ -4896,8 +4895,7 @@ display_debug_ranges (struct dwarf_section *section,
 
       pointer_size = debug_info_p->pointer_size;
 
-      /* DWARF sections under Mach-O have non-zero addresses.  */
-      offset = range_entry->ranges_offset - section->address;
+      offset = range_entry->ranges_offset;
       next = section_begin + offset;
       base_address = debug_info_p->base_address;
 
This page took 0.02611 seconds and 4 git commands to generate.