aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/machoread.c12
2 files changed, 17 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d73ddd3..024ab27 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2009-12-15 Tristan Gingold <gingold@adacore.com>
+ * machoread.c (macho_symfile_read): Set section size of dsym bfd
+ from main bfd.
+
+2009-12-15 Tristan Gingold <gingold@adacore.com>
+
* machoread.c (macho_check_dsym): Read uuid directly from load command
instead of from a fake section.
diff --git a/gdb/machoread.c b/gdb/machoread.c
index 0194ee5..12fefaf 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);