[PATCH 1/4] gdb: clear regcaches at the start of regcaches selftest

Simon Marchi simon.marchi@efficios.com
Tue Aug 18 20:59:23 GMT 2020


From: Simon Marchi <simon.marchi@polymtl.ca>

It currently does not work to run the `regcaches` selftest while
debugging something.  This is because we expect that there exists no
regcache at the start of the test.  If we are debugging something, there
might exist some regcaches.

Fix it by making the test clear regcaches at the start.

While at it, make the test clean up after it self and clear the
regcaches at the end too.

gdb/ChangeLog:

	* regcache.c (regcaches_test): Call registers_changed.

Change-Id: I9d4f83ecb0ff9721a71e2c5cbd19e6e6d4e6c30c
---
 gdb/regcache.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/regcache.c b/gdb/regcache.c
index cd54bc6b5f9..9f560acd3ed 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1506,7 +1506,8 @@ test_get_thread_arch_aspace_regcache (process_stratum_target *target,
 static void
 regcaches_test ()
 {
-  /* It is empty at the start.  */
+  /* Ensure the regcaches container is empty at the start.  */
+  registers_changed ();
   SELF_CHECK (regcaches_size () == 0);
 
   ptid_t ptid1 (1), ptid2 (2), ptid3 (3);
@@ -1565,6 +1566,9 @@ regcaches_test ()
      clears REGCACHES.  */
   registers_changed_ptid (nullptr, minus_one_ptid);
   SELF_CHECK (regcaches_size () == 0);
+
+  /* Make sure to leave the global regcaches container empty.  */
+  registers_changed ();
 }
 
 class target_ops_no_register : public test_target_ops
-- 
2.28.0



More information about the Gdb-patches mailing list