* dwarf.c (read_and_display_attr_value): Don't look up tag from

abbrev for DW_FORM_ref_addr.
This commit is contained in:
Jakub Jelinek
2012-05-10 06:18:48 +00:00
parent 83acd3e879
commit afd6e1ffce
2 changed files with 16 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2012-05-10 Jakub Jelinek <jakub@redhat.com>
* dwarf.c (read_and_display_attr_value): Don't look up tag from
abbrev for DW_FORM_ref_addr.
2012-05-08 Sean Keys <skeys@ipdatasys.com> 2012-05-08 Sean Keys <skeys@ipdatasys.com>
* binutils/MAINTAINERS: Added my entry to the maintainers secion. * binutils/MAINTAINERS: Added my entry to the maintainers secion.

View File

@ -1716,11 +1716,17 @@ read_and_display_attr_value (unsigned long attribute,
abbrev_number = read_leb128 (section->start + uvalue, NULL, 0); abbrev_number = read_leb128 (section->start + uvalue, NULL, 0);
printf (_("[Abbrev Number: %ld"), abbrev_number); printf (_("[Abbrev Number: %ld"), abbrev_number);
for (entry = first_abbrev; entry != NULL; entry = entry->next) /* Don't look up abbrev for DW_FORM_ref_addr, as it very often will
if (entry->entry == abbrev_number) use different abbrev table, and we don't track .debug_info chunks
break; yet. */
if (entry != NULL) if (form != DW_FORM_ref_addr)
printf (" (%s)", get_TAG_name (entry->tag)); {
for (entry = first_abbrev; entry != NULL; entry = entry->next)
if (entry->entry == abbrev_number)
break;
if (entry != NULL)
printf (" (%s)", get_TAG_name (entry->tag));
}
printf ("]"); printf ("]");
} }
} }