* coffread.c (coff_symfile_read): Prevent mixed debugging formats
authorBrian Ford <ford@vss.fsi.com>
Thu, 10 Jun 2004 15:52:04 +0000 (15:52 +0000)
committerBrian Ford <ford@vss.fsi.com>
Thu, 10 Jun 2004 15:52:04 +0000 (15:52 +0000)
from corrupting/reinitializing the psymtab.  Support DWARF 2 frame
info.
* dbxread.c (elfstab_build_psymtabs): Remove bogus comment.

gdb/ChangeLog
gdb/coffread.c
gdb/dbxread.c

index 415e3e5..cdcaf37 100644 (file)
@@ -1,3 +1,10 @@
+2004-06-10  Brian Ford  <ford@vss.fsi.com>
+
+       * 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.
+
 2004-06-10  Andrew Cagney  <cagney@gnu.org>
 
        * gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Delete.
index 474282c..821ca44 100644 (file)
@@ -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);
 }
 
index e33a7e4..c71b0c8 100644 (file)
@@ -3376,8 +3376,7 @@ coffstab_build_psymtabs (struct objfile *objfile, int mainline,
 }
 \f
 /* Scan and build partial symbols for an ELF symbol file.
-   This ELF file has already been processed to get its minimal symbols,
-   and any DWARF symbols that were in it.
+   This ELF file has already been processed to get its minimal symbols.
 
    This routine is the equivalent of dbx_symfile_init and dbx_symfile_read
    rolled into one.