* objdump.c (load_debug_section): Select bias for DWARF debug addresses based on the flavour of the bfd.

This commit is contained in:
Nick Clifton 2007-05-17 08:39:22 +00:00
parent 5e29c2647a
commit d57376011b
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2007-05-17 Nick Clifton <nickc@redhat.com>
* objdump.c (load_debug_section): Select bias for DWARF debug
addresses based on the flavour of the bfd.
2007-05-11 Alan Modra <amodra@bigpond.net.au>
PR 4479

View File

@ -1974,7 +1974,19 @@ load_debug_section (enum dwarf_section_display_enum debug, void *file)
if (sec == NULL)
return 0;
section->address = bfd_get_section_vma (abfd, sec);
/* Compute a bias to be added to offsets found within the DWARF debug
information. These offsets are meant to be relative to the start of
the dwarf section, and hence the bias should be 0. For MACH-O however
a dwarf section is really just a region of a much larger section and so
the bias is the address of the start of that area within the larger
section. This test is important for PE and COFF based targets which
use DWARF debug information, since unlike ELF, they do not allow the
dwarf sections to be placed at address 0. */
if (bfd_get_flavour (abfd) == bfd_target_mach_o_flavour)
section->address = bfd_get_section_vma (abfd, sec);
else
section->address = 0;
section->size = bfd_get_section_size (sec);
section->start = xmalloc (section->size);