[commit] Clear register cache when architecture changes
Ulrich Weigand
uweigand@de.ibm.com
Fri Aug 22 13:43:00 GMT 2008
Hello,
another obvious fix as fall-out from the multi-arch work: when the current
architecture is changed, deprecated_current_gdbarch_select_hack currently
calls reinit_frame_cache. However, this is not really enough, because the
register cache still uses the old architecture.
The following patch changes this function to use registers_changed instead.
Tested on powerpc-linux and powerpc64-linux.
Committed to mainline.
Bye,
Ulrich
ChangeLog:
* gdbarch.sh: Include "regcache.h" into gdbarch.c.
(deprecated_current_gdbarch_select_hack): Call registers_changed
instead of reinit_frame_cache.
* gdbarch.c: Regenerate.
Index: gdb/gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.432
diff -u -p -r1.432 gdbarch.c
--- gdb/gdbarch.c 11 Aug 2008 19:00:24 -0000 1.432
+++ gdb/gdbarch.c 22 Aug 2008 11:51:44 -0000
@@ -48,6 +48,7 @@
#include "osabi.h"
#include "gdb_obstack.h"
#include "observer.h"
+#include "regcache.h"
/* Static function declarations */
@@ -3666,7 +3667,7 @@ deprecated_current_gdbarch_select_hack (
gdb_assert (new_gdbarch->initialized_p);
current_gdbarch = new_gdbarch;
observer_notify_architecture_changed (new_gdbarch);
- reinit_frame_cache ();
+ registers_changed ();
}
extern void _initialize_gdbarch (void);
Index: gdb/gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.473
diff -u -p -r1.473 gdbarch.sh
--- gdb/gdbarch.sh 11 Aug 2008 19:00:25 -0000 1.473
+++ gdb/gdbarch.sh 22 Aug 2008 11:51:44 -0000
@@ -1137,6 +1137,7 @@ cat <<EOF
#include "osabi.h"
#include "gdb_obstack.h"
#include "observer.h"
+#include "regcache.h"
/* Static function declarations */
@@ -2022,7 +2023,7 @@ deprecated_current_gdbarch_select_hack (
gdb_assert (new_gdbarch->initialized_p);
current_gdbarch = new_gdbarch;
observer_notify_architecture_changed (new_gdbarch);
- reinit_frame_cache ();
+ registers_changed ();
}
extern void _initialize_gdbarch (void);
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
More information about the Gdb-patches
mailing list