gdb: clear regcaches at the start of regcaches selftest
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 20 Aug 2020 14:07:21 +0000 (10:07 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 20 Aug 2020 14:07:21 +0000 (10:07 -0400)
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/ChangeLog
gdb/regcache.c

index c568945bf0bc33d74848669bd881d94accb4f332..a6835f0b287f6e78affea1f8b8e34c92bf1426f9 100644 (file)
@@ -1,3 +1,7 @@
+2020-08-20  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * regcache.c (regcaches_test): Call registers_changed.
+
 2020-08-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
 
        * infrun.c (process_event_stop_test): Fix typo "breapoint".
index cd54bc6b5f9f3081cfa824416d67bf2f90e31dee..9f560acd3edde4bc0980c8a1d0dfab41c492f1d4 100644 (file)
@@ -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