* 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 415e3e579121bef9450b879ea9243822292cfc2c..cdcaf371233140452960f299a6352c2544928671 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 474282ce3c1f24d15ded688747bc322ff4b97912..821ca44f3bf72bda266446fb9803825cb043461d 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 e33a7e43c5b4991b13d25282ed35c9788b5808d6..c71b0c8fd5e9a63f2a355e01a8f52fa043f4232a 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.