From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id CCFF13858C62 for ; Tue, 28 Feb 2023 11:29:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CCFF13858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677583743; x=1709119743; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=D3Skl+/3f4TKi6EGsVf9BhbHcKXZJSKV2W5ojUjX0dM=; b=KD0jNn2rrPw8OwuT3jsSLsE9U3too3b8UT+Apqox5HUZ7nRO6NjQ90Kf mtSzKcEnQFLeMLvuxFXywolOhvGh0T5nQHvo7iDjD3gVfbXV69wGEVnZz fCrSyaIrCLRYOvO77/PRgkvViBF1b1MLd1Dwg0uGyD3Eu8uBGq7lxjuf5 HHXmAUogCHxIgcG3paVRy0XaX28XBteiaTRDa9i+FQNkMEEhRH5LgkY68 nxdnLs57OjCVHft0yqiD3yJ+J6I7h/d7yxg4yMiih9R8APic14V0nrMhS QOKC1cojSCAeKrbnGEHyFm4Mwcl9nFADvcteZfbPkFTdEEyGWym81IoYR g==; X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="314536329" X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="314536329" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Feb 2023 03:29:03 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="738120478" X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="738120478" Received: from ultl2604.iul.intel.com (HELO localhost) ([172.28.48.47]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Feb 2023 03:29:02 -0800 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org Subject: [PATCH 04/26] gdbserver: boolify and defaultize the 'fetch' parameter of get_thread_regcache Date: Tue, 28 Feb 2023 12:28:02 +0100 Message-Id: <6f7de05f02980779a4e6c723598a563ee831e3f2.1677582744.git.tankut.baris.aktemur@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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 Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928