From 0ef6f0192d06aa2b346ea4c1fe013abc39e1b562 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Sat, 13 Apr 1991 22:37:48 +0000 Subject: [PATCH] Permit symbols to be superseded when new symbol files have been read in, particularly for VxWorks. * symfile.c (symbol_file_add): Use filtered printing and wrap it. If we have wiped out any old symbol tables, clean up at end of symbol reading. (symbol_file_command): Don't reference symfile_fns if it's zero. --- gdb/symfile.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gdb/symfile.c b/gdb/symfile.c index 31aa1e2..d2f8255 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -413,7 +413,8 @@ symbol_file_add (name, from_tty, addr, mainline) if (from_tty) { - printf ("Reading symbol data from %s...", name); + printf_filtered ("Reading symbol data from %s...", name); + wrap_here (""); fflush (stdout); } @@ -457,9 +458,12 @@ symbol_file_add (name, from_tty, addr, mainline) symfile_fns = sf; } + /* If we have wiped out any old symbol tables, clean up. */ + clear_symtab_users_once (); + if (from_tty) { - printf ("done.\n"); + printf_filtered ("done.\n"); fflush (stdout); } } @@ -489,9 +493,11 @@ symbol_file_command (name, from_tty) /* FIXME, this does not account for the main file and subsequent files (shared libs, dynloads, etc) having different formats. It only calls the cleanup routine for the main file's format. */ - (*symfile_fns->sym_new_init) (); - free (symfile_fns); - symfile_fns = 0; + if (symfile_fns) { + (*symfile_fns->sym_new_init) (); + free (symfile_fns); + symfile_fns = 0; + } return; } -- 2.7.4