aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-05-18 12:12:16 +0000
committerPedro Alves <palves@redhat.com>2009-05-18 12:12:16 +0000
commit739fc47ac9a6169d7b12e82a3ec6ce8472354f78 (patch)
tree981cb0f4f389a95cd4828c805aa58be9ab943720 /gdb
parent7e1789f556ec6ba5c736abcb81e0a08ba31673ab (diff)
downloadgdb-739fc47ac9a6169d7b12e82a3ec6ce8472354f78.zip
gdb-739fc47ac9a6169d7b12e82a3ec6ce8472354f78.tar.gz
gdb-739fc47ac9a6169d7b12e82a3ec6ce8472354f78.tar.bz2
* corelow.c (core_open): Flush the register cache before doing
anything with registers.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/corelow.c8
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. */