From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id y9auL/Yv12mJaA4AWB0awg (envelope-from ) for ; Thu, 09 Apr 2026 00:49:58 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.a=rsa-sha256 header.s=mxsw2412 header.b=M5Dg4KjN; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id AA80C1E0BC; Thu, 09 Apr 2026 00:49:58 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FORGED_MUA_MOZILLA, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=no autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id ED85C1E08C for ; Thu, 09 Apr 2026 00:49:55 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id C70584BA2E0C for ; Thu, 9 Apr 2026 04:49:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C70584BA2E0C Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.a=rsa-sha256 header.s=mxsw2412 header.b=M5Dg4KjN Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) by sourceware.org (Postfix) with ESMTPS id 3DBE64BA2E08 for ; Thu, 9 Apr 2026 04:49:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3DBE64BA2E08 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=linux.spacemit.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3DBE64BA2E08 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=18.132.163.193 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775710167; cv=none; b=mlCF9RUlOTgpGCIrj9+yMvkeZIaO89rAusN/GHh/SS2rLjJpKsc9rIzFjf+sNZHLgoMVia5Wv1vVR5A4i+Wl6S2l3OHq1mrEq5Rlqo7uYr5Mx9GriSgso6A/ad6NcTjZ28MUHW374nmXi5OwYRdthweLuuz1z2JIOhWW7YHTE6o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775710167; c=relaxed/simple; bh=VTRbZKnF/WgnVAcCebd9y6mg3n7qK6QDntXc3rbFBo8=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=KH4dJba17LYZ7hmosZBX+YXUIjZBuCxFiymBCHmDLNK9WHoFMD4itHVxIfFsrc3Kbg8DwWoRzYKSt2si9IrIeZWEMBjgOXsM67OUhRfFUAY6jHt2EZRSoMup6oC1C1kl3R9gpII6XalSVlCtm6k2i3ceZ0cWV+QVZKj6+mnQ7Lw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3DBE64BA2E08 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1775710163; bh=rSaaySeNXVKh1fN6PQxwL06cADTE1dy03aTumywqb/8=; h=Message-ID:Date:MIME-Version:Subject:From:To; b=M5Dg4KjNsh8tkbLOj9wal07CwKmIcHFRelV5eHzNVCA8+t4NkPz5ffRmnf9dMcE3P denSSvPCzm77JmSCutcL/3aFH1+bqayfnx/eO/N0p5GYVp8w3i+Pnj3cbmpwyglL+0 DumDBy9DOm8Gknv49gF4SMVw7l/7fOd3Y1LodIg4= X-QQ-mid: esmtpgz12t1775710160t48bbbc69 X-QQ-Originating-IP: eADJ/4o7nzEJhh5uHNwWe+O3QtJcQi4M8Gfi7od2K5U= Received: from [127.0.0.1] ( [120.237.158.181]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 09 Apr 2026 12:49:19 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 8263261996765144384 EX-QQ-RecipientCnt: 2 Message-ID: <5233250DC48EA18D+a7ca8f5b-68d9-46d2-ac17-f7c8cc2487de@linux.spacemit.com> Date: Thu, 9 Apr 2026 12:49:19 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/2] gdbserver: riscv: Add support for hardware breakpoints/watchpoints From: liangzhen To: gdb-patches@sourceware.org Cc: zhuangqiubin@linux.spacemit.com References: <20260409024546.350958-1-liangzhen@linux.spacemit.com> <20260409024546.350958-3-liangzhen@linux.spacemit.com> In-Reply-To: <20260409024546.350958-3-liangzhen@linux.spacemit.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: NBRqiSexVQvLRqLvujDVPk9Gu7dBA6l0h6Cdpg/oc99p6J03DxVnY+z6 sf+PPBpsnRbJnzywLqe0L5OTSgysCbHLREk7JTQfss1cI5avYBWQfiEfZpXyI3FAds+zqNg 5WWOZ8p3yrNxBLJSfItd7AaBrPCy3M/tnVGR9d2sbrP0hBMir4nIecOT69TWpfToyeWq3k/ hQLNHwz7C4Haeksm+sa3LL5JlLAiWPLr5+R0m7AsLD6xrm6fyUb5ViaU5xXCMPOM0jstlAe sPrDkqX5pkQpevXVvpX0OucqAN1uPFb/QIvQ0ycQPH4/G+wYe0Lto64XyIf29voYv3s4HBp 0n2NeAXIxLZ1wt2VhUAERAvLp9Fx7a9Pk3D4aTBkW3UMuGk0t2Hq9GZxQ8VDoS1rX2lywl0 GtRH94jq2J0omquJRJpAOXl0tmZmZTsZSlBihU+F1DbOV4sT6YhRZX8iLmC6dC1jEpaDltO g7n8pp8iV1/lgihQ04zTSYDozS3eNXXwnogZths+fjaE3FbXHVK4wRi28iepnQiP90LOeuW hxYexTHkQgY/o/DkdJ3op/Dfdp1Fs1qgFedRe7GFzs0ElVpMtFHcXGoJVTqkfbseTXwuH4a ln6oSlncVp4KnF+2r321SAVxZyoJ9XYBg7fQB7Sw3EcBEMPwsB5wMJFDlpUegwd4Z6AGRYE ZNRJiMGh2i46uojsa5JjJkQyk9BRRgVFgcF8p8Eo6+jDr/lYwVcqyfn6sgvDESpzP8u08pI Qay/t2OVQh8+THTiEoLBX7uv5KdacXc9/Ji/XRE/9UABoOB6K9J6jPWoTgijgqCYabEZf/I LF39VV+3WsJJUSDGTZh/jurROtHwafoTb64viYo9fb2/yd4V/kFa3v/gyXC7DOwEKtaWQLs 4XyNdBJxuV7EBxIWnjAsbj2BW5tTSmszP9/VAnglRCz/Bt2x4S3uzhKN4IQFXTIiCpDUkGK iqd3ppigJprJufqTG1RxS13owgvy0mF/568axhoYb4W4ggBB4A1zfVBBUkeMla+cXDbm3Um U0pDs8xDDBLrnwRyvKWZTkD1rdXe37NCFZLz8YNXJIermzcNU/rzBgXNRnI3k= X-QQ-XMRINFO: NS+P29fieYNwqS3WCnRCOn9D1NpZuCnCRA== X-QQ-RECHKSPAM: 0 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Note: something forgot to change. On 4/9/2026 10:45 AM, Zane Leung wrote: > +/* Implementation of linux target ops method "low_insert_point". > + > + It actually only records the info of the to-be-inserted bp/wp; > + the actual insertion will happen when threads are resumed. */ > + > +int > +riscv_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr, > + int len, raw_breakpoint *bp) > +{ > + int ret; > + enum target_hw_bp_type targ_type; > + struct riscv_debug_reg_state *state > + = riscv_get_debug_reg_state (current_thread->id.pid ()); > + > + if (show_debug_regs) > + fprintf (stderr, "insert_point on entry (addr=0x%08lx, len=%d)\n", > + (unsigned long) addr, len); > + > + /* Determine the type from the raw breakpoint type. */ > + targ_type = raw_bkpt_type_to_target_hw_bp_type (type); > + > + ret = riscv_handle_point (targ_type, addr, len, > + 1 /* is_insert */, > + current_lwp_ptid (), state); > + Here should be ret = riscv_handle_point (targ_type, addr, len,                                          1 /* is_insert */,                                           current_lwp_ptid (), state) ? 0 : -1; > + if (show_debug_regs) > + riscv_show_debug_reg_state (state, "insert_point", addr, len, > + targ_type); > + > + return ret; > +} > + > +/* Implementation of linux target ops method "low_remove_point". > + > + It actually only records the info of the to-be-removed bp/wp, > + the actual removal will be done when threads are resumed. */ > + > +int > +riscv_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr, > + int len, raw_breakpoint *bp) > +{ > + int ret; > + enum target_hw_bp_type targ_type; > + struct riscv_debug_reg_state *state > + = riscv_get_debug_reg_state (current_thread->id.pid ()); > + > + if (show_debug_regs) > + fprintf (stderr, "remove_point on entry (addr=0x%08lx, len=%d)\n", > + (unsigned long) addr, len); > + > + /* Determine the type from the raw breakpoint type. */ > + targ_type = raw_bkpt_type_to_target_hw_bp_type (type); > + > + ret = riscv_handle_point (targ_type, addr, len, > + 0 /* is_insert */, > + current_lwp_ptid (), state); > + Same above. > + if (show_debug_regs) > + riscv_show_debug_reg_state (state, "remove_point", addr, len, > + targ_type); > + > + return ret; > +} > +