[04/26] gdbserver: boolify and defaultize the 'fetch' parameter of get_thread_regcache

Message ID 6f7de05f02980779a4e6c723598a563ee831e3f2.1677582744.git.tankut.baris.aktemur@intel.com
State New
Headers
Series gdbserver: refactor regcache and allow gradually populating |

Commit Message

Aktemur, Tankut Baris Feb. 28, 2023, 11:28 a.m. UTC
  Boolify the 'fetch' parameter of the get_thread_regcache function.

All of the current uses pass true for this parameter.  Therefore, define
its default value as true and remove the argument from the uses.

We still keep the parameter, though, to give downstream targets the
option to obtain a regcache without having to fetch the whole
contents.  Our (Intel) downstream target is an example.
---
 gdbserver/linux-aarch32-low.cc |  2 +-
 gdbserver/linux-low.cc         | 18 +++++++++---------
 gdbserver/linux-ppc-low.cc     |  2 +-
 gdbserver/linux-x86-low.cc     |  2 +-
 gdbserver/mem-break.cc         |  4 ++--
 gdbserver/proc-service.cc      |  2 +-
 gdbserver/regcache.cc          |  4 ++--
 gdbserver/regcache.h           |  2 +-
 gdbserver/remote-utils.cc      |  2 +-
 gdbserver/server.cc            |  4 ++--
 gdbserver/tracepoint.cc        |  4 ++--
 gdbserver/win32-low.cc         |  2 +-
 12 files changed, 24 insertions(+), 24 deletions(-)
  

Comments

Simon Marchi Dec. 21, 2023, 8:24 p.m. UTC | #1
On 2/28/23 06:28, Tankut Baris Aktemur via Gdb-patches wrote:
> Boolify the 'fetch' parameter of the get_thread_regcache function.
> 
> All of the current uses pass true for this parameter.  Therefore, define
> its default value as true and remove the argument from the uses.
> 
> We still keep the parameter, though, to give downstream targets the
> option to obtain a regcache without having to fetch the whole
> contents.  Our (Intel) downstream target is an example.

Just to understand better, can you explain what is the rationale of your
usage of fetch == false?

In any case, this LGTM, I think you can push it on its own, it's a good
cleanup.

Approved-By: Simon Marchi <simon.marchi@efficios.com>

Simon
  

Patch

diff --git a/gdbserver/linux-aarch32-low.cc b/gdbserver/linux-aarch32-low.cc
index 990a352af74..6508f587288 100644
--- a/gdbserver/linux-aarch32-low.cc
+++ b/gdbserver/linux-aarch32-low.cc
@@ -171,7 +171,7 @@  struct regs_info regs_info_aarch32 =
 int
 arm_is_thumb_mode (void)
 {
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
+  struct regcache *regcache = get_thread_regcache (current_thread);
   unsigned long cpsr;
 
   collect_register_by_name (regcache, "cpsr", &cpsr);
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index dec1944d45f..9e17e384c03 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -756,7 +756,7 @@  linux_process_target::get_pc (lwp_info *lwp)
   scoped_restore_current_thread restore_thread;
   switch_to_thread (get_lwp_thread (lwp));
 
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
+  struct regcache *regcache = get_thread_regcache (current_thread);
   CORE_ADDR pc = low_get_pc (regcache);
 
   threads_debug_printf ("pc is 0x%lx", (long) pc);
@@ -772,7 +772,7 @@  linux_process_target::get_syscall_trapinfo (lwp_info *lwp, int *sysno)
   scoped_restore_current_thread restore_thread;
   switch_to_thread (get_lwp_thread (lwp));
 
-  regcache = get_thread_regcache (current_thread, 1);
+  regcache = get_thread_regcache (current_thread);
   low_get_syscall_trapinfo (regcache, sysno);
 
   threads_debug_printf ("get_syscall_trapinfo sysno %d", *sysno);
@@ -880,7 +880,7 @@  linux_process_target::save_stop_reason (lwp_info *lwp)
       if (pc != sw_breakpoint_pc)
 	{
 	  struct regcache *regcache
-	    = get_thread_regcache (current_thread, 1);
+	    = get_thread_regcache (current_thread);
 	  low_set_pc (regcache, sw_breakpoint_pc);
 	}
 
@@ -2052,7 +2052,7 @@  linux_process_target::maybe_move_out_of_jump_pad (lwp_info *lwp, int *wstat)
 			  (PTRACE_TYPE_ARG3) 0, &info);
 		}
 
-	      regcache = get_thread_regcache (current_thread, 1);
+	      regcache = get_thread_regcache (current_thread);
 	      low_set_pc (regcache, status.tpoint_addr);
 	      lwp->stop_pc = status.tpoint_addr;
 
@@ -3053,7 +3053,7 @@  linux_process_target::wait_1 (ptid_t ptid, target_waitstatus *ourstatus,
       if (increment_pc != 0)
 	{
 	  struct regcache *regcache
-	    = get_thread_regcache (current_thread, 1);
+	    = get_thread_regcache (current_thread);
 
 	  event_child->stop_pc += increment_pc;
 	  low_set_pc (regcache, event_child->stop_pc);
@@ -3341,7 +3341,7 @@  linux_process_target::wait_1 (ptid_t ptid, target_waitstatus *ourstatus,
       if (low_supports_breakpoints ())
 	{
 	  struct regcache *regcache
-	    = get_thread_regcache (current_thread, 1);
+	    = get_thread_regcache (current_thread);
 	  low_set_pc (regcache, event_child->stop_pc);
 	}
 
@@ -3577,7 +3577,7 @@  linux_process_target::wait_1 (ptid_t ptid, target_waitstatus *ourstatus,
       if (decr_pc != 0)
 	{
 	  struct regcache *regcache
-	    = get_thread_regcache (current_thread, 1);
+	    = get_thread_regcache (current_thread);
 	  low_set_pc (regcache, event_child->stop_pc + decr_pc);
 	}
     }
@@ -3912,7 +3912,7 @@  void
 linux_process_target::install_software_single_step_breakpoints (lwp_info *lwp)
 {
   struct thread_info *thread = get_lwp_thread (lwp);
-  struct regcache *regcache = get_thread_regcache (thread, 1);
+  struct regcache *regcache = get_thread_regcache (thread);
 
   scoped_restore_current_thread restore_thread;
 
@@ -4087,7 +4087,7 @@  linux_process_target::resume_one_lwp_throw (lwp_info *lwp, int step,
 
   if (proc->tdesc != NULL && low_supports_breakpoints ())
     {
-      struct regcache *regcache = get_thread_regcache (current_thread, 1);
+      struct regcache *regcache = get_thread_regcache (current_thread);
 
       lwp->stop_pc = low_get_pc (regcache);
 
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 96c1da4d905..5c1dd6c078d 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -1055,7 +1055,7 @@  ppc_target::low_get_thread_area (int lwpid, CORE_ADDR *addr)
 {
   struct lwp_info *lwp = find_lwp_pid (ptid_t (lwpid));
   struct thread_info *thr = get_lwp_thread (lwp);
-  struct regcache *regcache = get_thread_regcache (thr, 1);
+  struct regcache *regcache = get_thread_regcache (thr);
   ULONGEST tp = 0;
 
 #ifdef __powerpc64__
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index e08ebacee05..c012cadcb54 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -353,7 +353,7 @@  x86_target::low_get_thread_area (int lwpid, CORE_ADDR *addr)
 
   {
     struct thread_info *thr = get_lwp_thread (lwp);
-    struct regcache *regcache = get_thread_regcache (thr, 1);
+    struct regcache *regcache = get_thread_regcache (thr);
     unsigned int desc[4];
     ULONGEST gs = 0;
     const int reg_thread_area = 3; /* bits to scale down register value.  */
diff --git a/gdbserver/mem-break.cc b/gdbserver/mem-break.cc
index c669842228d..73eeb8114eb 100644
--- a/gdbserver/mem-break.cc
+++ b/gdbserver/mem-break.cc
@@ -1228,7 +1228,7 @@  gdb_condition_true_at_breakpoint_z_type (char z_type, CORE_ADDR addr)
   if (bp->cond_list == NULL)
     return 1;
 
-  ctx.regcache = get_thread_regcache (current_thread, 1);
+  ctx.regcache = get_thread_regcache (current_thread);
   ctx.tframe = NULL;
   ctx.tpoint = NULL;
 
@@ -1350,7 +1350,7 @@  run_breakpoint_commands_z_type (char z_type, CORE_ADDR addr)
   if (bp == NULL)
     return 1;
 
-  ctx.regcache = get_thread_regcache (current_thread, 1);
+  ctx.regcache = get_thread_regcache (current_thread);
   ctx.tframe = NULL;
   ctx.tpoint = NULL;
 
diff --git a/gdbserver/proc-service.cc b/gdbserver/proc-service.cc
index 2d516a0cad7..031e9607241 100644
--- a/gdbserver/proc-service.cc
+++ b/gdbserver/proc-service.cc
@@ -113,7 +113,7 @@  ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
 
   scoped_restore_current_thread restore_thread;
   switch_to_thread (get_lwp_thread (lwp));
-  regcache = get_thread_regcache (current_thread, 1);
+  regcache = get_thread_regcache (current_thread);
   gregset_info ()->fill_function (regcache, gregset);
 
   return PS_OK;
diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc
index 1410dd96551..21c2207822c 100644
--- a/gdbserver/regcache.cc
+++ b/gdbserver/regcache.cc
@@ -24,7 +24,7 @@ 
 #ifndef IN_PROCESS_AGENT
 
 struct regcache *
-get_thread_regcache (struct thread_info *thread, int fetch)
+get_thread_regcache (struct thread_info *thread, bool fetch)
 {
   struct regcache *regcache;
 
@@ -67,7 +67,7 @@  get_thread_regcache (struct thread_info *thread, int fetch)
 struct regcache *
 get_thread_regcache_for_ptid (ptid_t ptid)
 {
-  return get_thread_regcache (find_thread_ptid (ptid), 1);
+  return get_thread_regcache (find_thread_ptid (ptid));
 }
 
 void
diff --git a/gdbserver/regcache.h b/gdbserver/regcache.h
index 0002726ed00..5b2066ced4d 100644
--- a/gdbserver/regcache.h
+++ b/gdbserver/regcache.h
@@ -68,7 +68,7 @@  struct regcache : public reg_buffer_common
 
 void regcache_cpy (struct regcache *dst, struct regcache *src);
 
-struct regcache *get_thread_regcache (struct thread_info *thread, int fetch);
+regcache *get_thread_regcache (thread_info *thread, bool fetch = true);
 
 /* Release all memory associated with the register cache for INFERIOR.  */
 
diff --git a/gdbserver/remote-utils.cc b/gdbserver/remote-utils.cc
index 80310bc2c70..26ca621e2f1 100644
--- a/gdbserver/remote-utils.cc
+++ b/gdbserver/remote-utils.cc
@@ -1156,7 +1156,7 @@  prepare_resume_reply (char *buf, ptid_t ptid, const target_waitstatus &status)
 
 	regp = current_target_desc ()->expedite_regs;
 
-	regcache = get_thread_regcache (current_thread, 1);
+	regcache = get_thread_regcache (current_thread);
 
 	if (the_target->stopped_by_watchpoint ())
 	  {
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index f85d7ed9cf5..4be12ec1c66 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -4255,7 +4255,7 @@  process_serial_event (void)
 	    write_enn (cs.own_buf);
 	  else
 	    {
-	      regcache = get_thread_regcache (current_thread, 1);
+	      regcache = get_thread_regcache (current_thread);
 	      registers_to_string (regcache, cs.own_buf);
 	    }
 	}
@@ -4272,7 +4272,7 @@  process_serial_event (void)
 	    write_enn (cs.own_buf);
 	  else
 	    {
-	      regcache = get_thread_regcache (current_thread, 1);
+	      regcache = get_thread_regcache (current_thread);
 	      registers_from_string (regcache, &cs.own_buf[1]);
 	      write_ok (cs.own_buf);
 	    }
diff --git a/gdbserver/tracepoint.cc b/gdbserver/tracepoint.cc
index e4715b95eb3..82bb74addd1 100644
--- a/gdbserver/tracepoint.cc
+++ b/gdbserver/tracepoint.cc
@@ -4382,7 +4382,7 @@  tracepoint_finished_step (struct thread_info *tinfo, CORE_ADDR stop_pc)
 	       wstep->tp_number, paddress (wstep->tp_address));
 
   ctx.base.type = trap_tracepoint;
-  ctx.regcache = get_thread_regcache (tinfo, 1);
+  ctx.regcache = get_thread_regcache (tinfo);
 
   while (wstep != NULL)
     {
@@ -4543,7 +4543,7 @@  tracepoint_was_hit (struct thread_info *tinfo, CORE_ADDR stop_pc)
     return 0;
 
   ctx.base.type = trap_tracepoint;
-  ctx.regcache = get_thread_regcache (tinfo, 1);
+  ctx.regcache = get_thread_regcache (tinfo);
 
   for (tpoint = tracepoints; tpoint; tpoint = tpoint->next)
     {
diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
index 756507709d8..5cc6a49e1f6 100644
--- a/gdbserver/win32-low.cc
+++ b/gdbserver/win32-low.cc
@@ -971,7 +971,7 @@  gdbserver_windows_process::handle_access_violation
 static void
 maybe_adjust_pc ()
 {
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
+  struct regcache *regcache = get_thread_regcache (current_thread);
   child_fetch_inferior_registers (regcache, -1);
 
   windows_thread_info *th