summaryrefslogtreecommitdiff
path: root/gdb/coffread.c
diff options
context:
space:
mode:
authorBrian Ford <ford@vss.fsi.com>2004-06-10 15:52:04 +0000
committerBrian Ford <ford@vss.fsi.com>2004-06-10 15:52:04 +0000
commit6d20d2295120b8ed8f783ab23d531c5237f0cffb (patch)
tree985cbad08beef71fdbb6ceb6fd639914b5cf6a5a /gdb/coffread.c
parentb1c6b573a3c5bc89939fb1478d51afda289c8a3a (diff)
downloadgdb-6d20d2295120b8ed8f783ab23d531c5237f0cffb.tar.gz
* coffread.c (coff_symfile_read): Prevent mixed debugging formats
from corrupting/reinitializing the psymtab. Support DWARF 2 frame info. * dbxread.c (elfstab_build_psymtabs): Remove bogus comment.
Diffstat (limited to 'gdb/coffread.c')
-rw-r--r--gdb/coffread.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 474282ce3c1..821ca44f3bf 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -603,6 +603,15 @@ coff_symfile_read (struct objfile *objfile, int mainline)
/* Free the installed minimal symbol data. */
do_cleanups (cleanup_minimal_symbols);
+ /* If we are reinitializing, or if we have not loaded syms yet,
+ empty the psymtab. "mainline" is cleared so the *_read_psymtab
+ functions do not all re-initialize it. */
+ if (mainline)
+ {
+ init_psymbol_list (objfile, 0);
+ mainline = 0;
+ }
+
bfd_map_over_sections (abfd, coff_locate_sections, (void *) info);
if (info->stabsects)
@@ -633,6 +642,8 @@ coff_symfile_read (struct objfile *objfile, int mainline)
dwarf2_build_psymtabs (objfile, mainline);
}
+ dwarf2_build_frame_info (objfile);
+
do_cleanups (back_to);
}