diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2015-10-16 11:58:02 +0200 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2015-11-30 13:28:26 +0000 |
commit | 42bcef4ad646732e0684557fe08b74dd0c5aa7e9 (patch) | |
tree | 2acf45f8515750719a487e904f25e08686c84572 /move-if-change | |
parent | bc301448c07afbf8aa70f2808be68dc8c50c9098 (diff) | |
download | binutils-gdb-42bcef4ad646732e0684557fe08b74dd0c5aa7e9.tar.gz |
objdump: Handle 32-bit base address in debug_ranges / debug_loc.
When the DWARF address size is 32-bit, but the host machine is 64-bit,
objdump fails to spot base addresses specified in the .debug_ranges and
.debug_loc lists.
As an example, here is the output when dumping an example .debug_ranges
section with the pre-patched objdump:
Contents of the .debug_ranges section:
Offset Begin End
00000000 ffffffff 00000004 (start > end)
00000000 00000000 00000004
00000000 ffffffff 00000008 (start > end)
00000000 00000000 00000004
00000000 <End of list>
And this is what the same section looks like when dumped with the
patched version of objdump:
Contents of the .debug_ranges section:
Offset Begin End
00000000 ffffffff 00000004 (base address)
00000000 00000004 00000008
00000000 ffffffff 00000008 (base address)
00000000 00000008 0000000c
00000000 <End of list>
binutils/ChangeLog:
* dwarf.c (is_max_address): New function.
(display_loc_list): Remove out of date comment, use
is_max_address.
(display_debug_ranges): Likewise.
binutils/testsuite/ChangeLog:
* binutils-all/objdump.exp: Add test for .debug_ranges decode.
* binutils-all/dw2-ranges.S: New file.
* binutils-all/dw2-ranges.W: New file.
Diffstat (limited to 'move-if-change')
0 files changed, 0 insertions, 0 deletions