[PATCH][binutils] Fix debug_rnglists test in display_debug_ranges
Tom de Vries
tdevries@suse.de
Tue Feb 9 15:12:54 GMT 2021
On 2/9/21 3:46 PM, Tom de Vries wrote:
> 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?
>
Sorry, while the patch is not incorrect, it doesn't yet fix the errors,
there's more to fix it seems.
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