diff options
Diffstat (limited to 'gdb/infcmd.c')
-rw-r--r-- | gdb/infcmd.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/infcmd.c b/gdb/infcmd.c index ccf0806..5b8d1f2 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -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 |