readelf: Fix output of rnglists section

* dwarf.c (display_debug_rnglists_list): Only bias the
	DW_RLS_offset_pair with the base address.
This commit is contained in:
Bernd Edlinger
2020-11-11 14:31:46 +00:00
committed by Nick Clifton
parent 0dd7428d89
commit 4d93271533
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2020-11-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
* dwarf.c (display_debug_rnglists_list): Only bias the
DW_RLS_offset_pair with the base address.
2020-11-10 Nick Clifton <nickc@redhat.com>
* dwarf.c (skip_attr_bytes): Correctly handle DW_FORM_ref8.

View File

@ -7532,8 +7532,15 @@ display_debug_rnglists_list (unsigned char *start, unsigned char *finish,
if (rlet == DW_RLE_base_address)
continue;
print_dwarf_vma (begin + base_address, pointer_size);
print_dwarf_vma (end + base_address, pointer_size);
/* Only a DW_RLE_offset_pair needs the base address added. */
if (rlet == DW_RLE_offset_pair)
{
begin += base_address;
end += base_address;
}
print_dwarf_vma (begin, pointer_size);
print_dwarf_vma (end, pointer_size);
if (begin == end)
fputs (_("(start == end)"), stdout);