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

Tankut Baris Aktemur via Gdb-patches
2023-02-28T11:29:30Z

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(-)

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
--
2.25.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva