summaryrefslogtreecommitdiff
path: root/gdb/machoread.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2009-12-15 09:56:21 +0000
committerTristan Gingold <gingold@adacore.com>2009-12-15 09:56:21 +0000
commit1b03fede6329aa8d4e539f2a86bd3394aa112051 (patch)
treef7425a5e071d163c7362f7ac5f522731a5bac1b2 /gdb/machoread.c
parenta7ee707d4b31b207f7c0254ca597522dbbd222af (diff)
downloadgdb-1b03fede6329aa8d4e539f2a86bd3394aa112051.tar.gz
2009-12-15 Tristan Gingold <gingold@adacore.com>
* machoread.c (macho_symfile_read): Set section size of dsym bfd from main bfd.
Diffstat (limited to 'gdb/machoread.c')
-rw-r--r--gdb/machoread.c12
1 files changed, 12 insertions, 0 deletions
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);