From 6414f3fd8b6badcb210002f54e10b49156e4da75 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 15 Dec 2009 09:56:23 +0000 Subject: [PATCH] 2009-12-15 Tristan Gingold * machoread.c (macho_symfile_read): Set section size of dsym bfd from main bfd. --- gdb/ChangeLog | 5 +++++ gdb/machoread.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d73ddd38b0a..024ab277598 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-12-15 Tristan Gingold + + * machoread.c (macho_symfile_read): Set section size of dsym bfd + from main bfd. + 2009-12-15 Tristan Gingold * machoread.c (macho_check_dsym): Read uuid directly from load command diff --git a/gdb/machoread.c b/gdb/machoread.c index 0194ee52162..12fefaf1e09 100644 --- a/gdb/machoread.c +++ b/gdb/machoread.c @@ -626,6 +626,7 @@ macho_symfile_read (struct objfile *objfile, int symfile_flags) { int ix; oso_el *oso; + struct bfd_section *asect, *dsect; if (mach_o_debug_level > 0) printf_unfiltered (_("dsym file found\n")); @@ -639,6 +640,17 @@ macho_symfile_read (struct objfile *objfile, int symfile_flags) VEC_free (oso_el, oso_vector); oso_vector = NULL; + /* Set dsym section size. */ + for (asect = objfile->obfd->sections, dsect = dsym_bfd->sections; + asect && dsect; + asect = asect->next, dsect = dsect->next) + { + if (strcmp (asect->name, dsect->name) != 0) + break; + bfd_set_section_size (dsym_bfd, dsect, + bfd_get_section_size (asect)); + } + /* Add the dsym file as a separate file. */ symbol_file_add_separate (dsym_bfd, symfile_flags, objfile); -- 2.30.2