diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/corelow.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1a99b11..ecfe85a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2009-05-18 Pedro Alves <pedro@codesourcery.com> + * corelow.c (core_open): Flush the register cache before doing + anything with registers. + +2009-05-18 Pedro Alves <pedro@codesourcery.com> + * inflow.h (our_process_group): Remove declaration. (inferior_process_group): Delete global variable declaration. (inferior_process_group): New function declaration. diff --git a/gdb/corelow.c b/gdb/corelow.c index 5d6f072..ffaf04c 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -379,6 +379,14 @@ core_open (char *filename, int from_tty) from ST to MT. */ add_thread_silent (inferior_ptid); + /* Need to flush the register cache (and the frame cache) from a + previous debug session. If inferior_ptid ends up the same as the + last debug session --- e.g., b foo; run; gcore core1; step; gcore + core2; core core1; core core2 --- then there's potential for + get_current_regcache to return the cached regcache of the + previous session, and the frame cache being stale. */ + registers_changed (); + /* Build up thread list from BFD sections, and possibly set the current thread to the .reg/NN section matching the .reg section. */ |