aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/dbxread.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 4a6a540..777baf8 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1281,9 +1281,12 @@ dbx_symfile_read (sf, addr, mainline)
if (mainline) {
symfile_string_table = info->stringtab;
symfile_string_table_size = info->stringtab_size;
- init_psymbol_list (info->symcount);
}
+ /* If we are reinitializing, or if we have never loaded syms yet, init */
+ if (mainline || global_psymbols.size == 0 || static_psymbols.size == 0)
+ init_psymbol_list (info->symcount);
+
symfile_bfd = sym_bfd; /* Kludge for SWAP_SYMBOL */
pending_blocks = 0;
@@ -2618,7 +2621,7 @@ dbx_psymtab_to_symtab (pst)
/* We keep the string table for symfile resident in memory, but
not the string table for any other symbol files. */
- if (0 != strcmp(pst->symfile_name, symfile))
+ if ((symfile == 0) || 0 != strcmp(pst->symfile_name, symfile))
{
/* Read in the string table */