From patchwork Tue Feb 28 11:28:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tankut Baris Aktemur X-Patchwork-Id: 65735 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2E6FE385B514 for ; Tue, 28 Feb 2023 11:29:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2E6FE385B514 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677583773; bh=myMGP6z2kO0DSE1M+WEqYNuQ9B1rBgE6Rqxt+1tqO1s=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=eBka2qogFs/gaTneLV2E+IeXtMiSuHBBtbsxb/5BKiwqceBWXUaC4IRIJpl7xyjgS kDuGUryudhZui2UCe5WhSO1Jz5+bq3q4GBAyeRE2MH7aluGvAcA5x9ShZyTXqwBPgL wvej9ZyDmhS5DOC2qySvWlx50XJXvd1EW8ya4OBc= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org 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 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 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 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tankut Baris Aktemur via Gdb-patches From: Tankut Baris Aktemur Reply-To: Tankut Baris Aktemur Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" 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