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 D98F83858430 for ; Tue, 28 Mar 2023 11:55:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D98F83858430 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=1680004512; x=1711540512; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=NptBKre364E8vBK9QWEjdtH2V9g3BA3QMjQ36sCwczI=; b=acJe66fVKcFHF8wkh0TDXiEL0FbHjDvIlYgFRiS26Ylo9zUaeNPujAvD 3Q6g6vxElmaZUPFm8uUV5PNu39Fa0MS7mMj/5ZmHKmTzyVoTDlOoR+3Gp iUw8h+tqqwevIfUjOUAG6z96k0tdRWqo92ltm9w+PkbAComQ/vggJYSDj 4PfNFj/VrWGi6519AnHhmlW9GFqGciJ52QXu062NpWI68XFljqwnjPGGx pA1c+eFTnnOF0pRpxCycUcluZo8aRtZQ4JVjaWUX03mHd+fupBXL5LrVn YX8Ax0diRsLsaEFMJdSSWV1Bu1IYRo/Kh+ZhTQAffvWpDkKXVxGSEM/ig g==; X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="320944346" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="320944346" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 04:55:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="753116171" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="753116171" Received: from mbouhaou-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.40.224]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 04:55:09 -0700 From: Mohamed Bouhaouel To: gdb-patches@sourceware.org Subject: [PATCH 1/3] gdb, gdbserver, zpoint: report z_point support Date: Tue, 28 Mar 2023 13:54:47 +0200 Message-Id: <20230328115449.6526-2-mohamed.bouhaouel@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230328115449.6526-1-mohamed.bouhaouel@intel.com> References: <20230328115449.6526-1-mohamed.bouhaouel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-9.8 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: Report if the target supports Z-points when exchanging features between GDB and gdbserver. Signed-off-by: Mohamed Bouhaouel --- gdb/remote.c | 15 +++++++++++++++ gdbserver/mem-break.cc | 2 +- gdbserver/mem-break.h | 4 ++++ gdbserver/server.cc | 7 +++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/gdb/remote.c b/gdb/remote.c index 526df313ea7..1139ce3ddf7 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -755,6 +755,9 @@ class remote_target : public process_stratum_target int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, struct expression *) override; + /* Returns TRUE if GDB Z breakpoint type is supported, FALSE otherwise. */ + bool supports_z_point_type (int); + int remove_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, struct expression *) override; @@ -5604,6 +5607,11 @@ static const struct protocol_feature remote_protocol_features[] = { { "no-resumed", PACKET_DISABLE, remote_supported_packet, PACKET_no_resumed }, { "memory-tagging", PACKET_DISABLE, remote_supported_packet, PACKET_memory_tagging_feature }, + { "Z0", PACKET_SUPPORT_UNKNOWN, remote_supported_packet, PACKET_Z0 }, + { "Z1", PACKET_SUPPORT_UNKNOWN, remote_supported_packet, PACKET_Z1 }, + { "Z2", PACKET_SUPPORT_UNKNOWN, remote_supported_packet, PACKET_Z2 }, + { "Z3", PACKET_SUPPORT_UNKNOWN, remote_supported_packet, PACKET_Z3 }, + { "Z4", PACKET_SUPPORT_UNKNOWN, remote_supported_packet, PACKET_Z4 }, }; static char *remote_support_xml; @@ -10843,6 +10851,13 @@ watchpoint_to_Z_packet (int type) } } +bool +remote_target::supports_z_point_type (int type) +{ + Z_packet_type packet = watchpoint_to_Z_packet (type); + return (m_features.packet_support (PACKET_Z0 + packet) != PACKET_DISABLE); +} + int remote_target::insert_watchpoint (CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) diff --git a/gdbserver/mem-break.cc b/gdbserver/mem-break.cc index c669842228d..20434f7c9b4 100644 --- a/gdbserver/mem-break.cc +++ b/gdbserver/mem-break.cc @@ -987,7 +987,7 @@ find_gdb_breakpoint (char z_type, CORE_ADDR addr, int kind) return NULL; } -static int +int z_type_supported (char z_type) { return (z_type >= '0' && z_type <= '4' diff --git a/gdbserver/mem-break.h b/gdbserver/mem-break.h index 9bf7aa84932..458ba0e6be2 100644 --- a/gdbserver/mem-break.h +++ b/gdbserver/mem-break.h @@ -276,4 +276,8 @@ int remove_memory_breakpoint (struct raw_breakpoint *bp); void clone_all_breakpoints (struct thread_info *child_thread, const struct thread_info *parent_thread); + +/* Returns TRUE if Z_TYPE is supported by the target. */ + +int z_type_supported (char z_type); #endif /* GDBSERVER_MEM_BREAK_H */ diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 949849b63a2..e758cd0d509 100644 --- a/gdbserver/server.cc +++ b/gdbserver/server.cc @@ -2480,6 +2480,13 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) if (target_supports_memory_tagging ()) strcat (own_buf, ";memory-tagging+"); + /* Z points support. */ + strcat (own_buf, z_type_supported ('0') ? ";Z0+" : ";Z0-"); + strcat (own_buf, z_type_supported ('1') ? ";Z1+" : ";Z1-"); + strcat (own_buf, z_type_supported ('2') ? ";Z2+" : ";Z2-"); + strcat (own_buf, z_type_supported ('3') ? ";Z3+" : ";Z3-"); + strcat (own_buf, z_type_supported ('4') ? ";Z4+" : ";Z4-"); + /* Reinitialize components as needed for the new connection. */ hostio_handle_new_gdb_connection (); target_handle_new_gdb_connection (); -- 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