[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