diff options
| author | Mark Wielaard <[email protected]> | 2020-09-01 23:32:09 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2020-09-07 10:07:45 +0200 |
| commit | f1a0e680aa0f4e9fcdf10afcea075a833a5a9e4a (patch) | |
| tree | 6f26edef3920716068f7a31787f9826bbfe781f8 | |
| parent | d0f3b596fd9bc262c6bcd2da571436165d734222 (diff) | |
readelf: base address entry can be first
In both debug_ranges and debug_loc a base address entry can be the
first in the range or loc list. If so print the offset and set first
to false. Otherwise don't print the entry list offset, but do set
first to false.
Signed-off-by: Mark Wielaard <[email protected]>
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/readelf.c | 16 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e37f3587..8a64a15e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2020-09-01 Mark Wielaard <[email protected]> + + * readelf.c (print_debug_ranges_section): Base address entry can + be first. + (print_debug_loc_section): Likewise. + 2020-09-04 Mark Wielaard <[email protected]> * elflint.c (special_sections): Add .debug_line_str. diff --git a/src/readelf.c b/src/readelf.c index 41933d95..dd6e28af 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -6045,10 +6045,16 @@ print_debug_ranges_section (Dwfl_Module *dwflmod, if (begin == (Dwarf_Addr) -1l) /* Base address entry. */ { - printf (gettext (" [%6tx] base address\n "), offset); + if (first) + printf (" [%6tx] ", offset); + else + printf (" "); + puts (gettext ("base address")); + printf (" "); print_dwarf_addr (dwflmod, address_size, end, end); printf ("\n"); base = end; + first = false; } else if (begin == 0 && end == 0) /* End of list entry. */ { @@ -9615,10 +9621,16 @@ print_debug_loc_section (Dwfl_Module *dwflmod, if (begin == (Dwarf_Addr) -1l) /* Base address entry. */ { - printf (gettext (" [%6tx] base address\n "), offset); + if (first) + printf (" [%6tx] ", offset); + else + printf (" "); + puts (gettext ("base address")); + printf (" "); print_dwarf_addr (dwflmod, address_size, end, end); printf ("\n"); base = end; + first = false; } else if (begin == 0 && end == 0) /* End of list entry. */ { |
