[PATCH][binutils] Fix debug_rnglists test in display_debug_ranges
Tom de Vries
tdevries@suse.de
Tue Feb 9 14:46:38 GMT 2021
Hi,
With exec:
...
$ g++ src/gdb/testsuite/gdb.cp/cpexprs.cc -gdwarf-5 -fdebug-types-section
...
I run into:
...
$ readelf -w a.out > READELF
readelf: Error: Invalid range list entry type 126
readelf: Error: Invalid range list entry type 60
...
The problem is that the is_rnglists test in display_debug_ranges fails,
because the section name is prefixed with a dot:
...
(gdb) p section->name
$3 = 0x4f4ad4 ".debug_rnglists"
...
and the comparison is done using a string without such a prefix:
...
int is_rnglists = strstr (section->name, "debug_rnglists") != NULL;
...
Fix this by adding the missing dot prefix in the comparison.
OK for trunk?
Thanks,
- Tom
[binutils] Fix debug_rnglists test in display_debug_ranges
binutils/ChangeLog:
2021-02-09 Tom de Vries <tdevries@suse.de>
PR binutils/27371
* dwarf.c (display_debug_ranges): Fix is_rnglists test.
---
binutils/dwarf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index d6eb8926dbf..9fc040555b4 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -7581,7 +7581,7 @@ display_debug_ranges (struct dwarf_section *section,
unsigned char *finish = start + bytes;
unsigned int num_range_list, i;
struct range_entry *range_entries, *range_entry_fill;
- int is_rnglists = strstr (section->name, "debug_rnglists") != NULL;
+ int is_rnglists = strstr (section->name, ".debug_rnglists") != NULL;
/* Initialize it due to a false compiler warning. */
unsigned char address_size = 0;
dwarf_vma last_offset = 0;
More information about the Binutils
mailing list