* infcmd.c (run_command): Check that the `exec' target layer's BFD

is up-to-date before running the program, not just when a program
exits.

* testsuite/gdb.base/reread.exp: Check that GDB properly re-reads the
executable file when it changes while no inferior is running.
This commit is contained in:
Jim Blandy
2002-01-21 21:57:55 +00:00
parent 58255df39c
commit 39ad761d6d
4 changed files with 86 additions and 5 deletions

View File

@@ -389,17 +389,23 @@ Start it from the beginning? "))
clear_breakpoint_hit_counts ();
exec_file = (char *) get_exec_file (0);
/* Purge old solib objfiles. */
objfile_purge_solibs ();
do_run_cleanups (NULL);
/* The exec file is re-read every time we do a generic_mourn_inferior, so
we just have to worry about the symbol file. */
/* The comment here used to read, "The exec file is re-read every
time we do a generic_mourn_inferior, so we just have to worry
about the symbol file." The `generic_mourn_inferior' function
gets called whenever the program exits. However, suppose the
program exits, and *then* the executable file changes? We need
to check again here. Since reopen_exec_file doesn't do anything
if the timestamp hasn't changed, I don't see the harm. */
reopen_exec_file ();
reread_symbols ();
exec_file = (char *) get_exec_file (0);
/* We keep symbols from add-symbol-file, on the grounds that the
user might want to add some symbols before running the program
(right?). But sometimes (dynamic loading where the user manually