From 739362dd44e892b2e71b6ce1ec10c624ca386677 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 10 May 2012 06:18:47 +0000 Subject: * dwarf.c (read_and_display_attr_value): Don't look up tag from abbrev for DW_FORM_ref_addr. --- binutils/dwarf.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'binutils/dwarf.c') diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 856a851a43..5361396b8e 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -1716,11 +1716,17 @@ read_and_display_attr_value (unsigned long attribute, abbrev_number = read_leb128 (section->start + uvalue, NULL, 0); printf (_("[Abbrev Number: %ld"), abbrev_number); - 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)); + /* 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. */ + if (form != DW_FORM_ref_addr) + { + 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 ("]"); } } -- cgit v1.2.1