From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by sourceware.org (Postfix) with ESMTPS id F00C03858D1E for ; Wed, 9 Nov 2022 07:34:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F00C03858D1E 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=1667979275; x=1699515275; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=sqpQG/Ew6a4HPZobRaf7ov/FqvqvGqZr+UPVYku6T1c=; b=YpvI4YkqnbDXCUIN78q8st1pPLhHuMGuNgVfWW51ww8/Owj22KhRd1Mb nIzk0Dcm7Ho3prMsj5sLnO72uW7Ofi/9ZYlc+B7Wdt38CctVareJxPVKm iL3BMESnK8Tnv8qfGla7piKUexXdVahfmhUvhtKVqGJgqXLamC7w8xY4N dbrvtq53i5Z+c4ykjak2eitJQZHWtsuritlSMyKl5EEuGwNWLNtZmDdyH /jMuF84Sj5xDuwBbKgpFiGllhErzh09vsIxLaw2E3sOutU91mobwxtZLC Np8gLA3KRw0dzr702h4vtXVTYBGX1UqT6bWBX4Wpl9fIFHaaHpazMa+Di g==; X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="312710585" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="312710585" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2022 23:34:33 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="587674697" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="587674697" Received: from ultl2604.iul.intel.com (HELO localhost) ([172.28.48.47]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2022 23:34:32 -0800 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org Cc: markus.t.metzger@intel.com Subject: [PATCH] gdbserver: do not report btrace support if target does not announce it Date: Wed, 9 Nov 2022 08:34:08 +0100 Message-Id: <20221109073408.16487-1-tankut.baris.aktemur@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.1 required=5.0 tests=AC_FROM_MANY_DOTS,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: Gdbserver unconditionally reports support for btrace packets. Do not report the support, if the underlying target does not say it supports it. Otherwise GDB would query the server with btrace-related packets unnecessarily. --- gdbserver/linux-low.cc | 6 ++++++ gdbserver/linux-low.h | 2 ++ gdbserver/server.cc | 3 ++- gdbserver/target.cc | 6 ++++++ gdbserver/target.h | 3 +++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc index 1676328fc88..0cbfeb99086 100644 --- a/gdbserver/linux-low.cc +++ b/gdbserver/linux-low.cc @@ -6712,6 +6712,12 @@ linux_process_target::qxfer_libraries_svr4 (const char *annex, #ifdef HAVE_LINUX_BTRACE +bool +linux_process_target::supports_btrace () +{ + return true; +} + btrace_target_info * linux_process_target::enable_btrace (thread_info *tp, const btrace_config *conf) diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h index 79be31b8f72..1594f063f47 100644 --- a/gdbserver/linux-low.h +++ b/gdbserver/linux-low.h @@ -275,6 +275,8 @@ class linux_process_target : public process_stratum_target bool supports_agent () override; #ifdef HAVE_LINUX_BTRACE + bool supports_btrace () override; + btrace_target_info *enable_btrace (thread_info *tp, const btrace_config *conf) override; diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 366a843ea89..aaef38e0062 100644 --- a/gdbserver/server.cc +++ b/gdbserver/server.cc @@ -2475,7 +2475,8 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) if (target_supports_agent ()) strcat (own_buf, ";QAgent+"); - supported_btrace_packets (own_buf); + if (the_target->supports_btrace ()) + supported_btrace_packets (own_buf); if (target_supports_stopped_by_sw_breakpoint ()) strcat (own_buf, ";swbreak+"); diff --git a/gdbserver/target.cc b/gdbserver/target.cc index adcfe6e7bcc..c06a67600b1 100644 --- a/gdbserver/target.cc +++ b/gdbserver/target.cc @@ -694,6 +694,12 @@ process_stratum_target::supports_agent () return false; } +bool +process_stratum_target::supports_btrace () +{ + return false; +} + btrace_target_info * process_stratum_target::enable_btrace (thread_info *tp, const btrace_config *conf) diff --git a/gdbserver/target.h b/gdbserver/target.h index 6c536a30778..18ab969dda7 100644 --- a/gdbserver/target.h +++ b/gdbserver/target.h @@ -388,6 +388,9 @@ class process_stratum_target /* Return true if target supports debugging agent. */ virtual bool supports_agent (); + /* Return true if target supports btrace. */ + virtual bool supports_btrace (); + /* Enable branch tracing for TP based on CONF and allocate a branch trace target information struct for reading and for disabling branch trace. */ virtual btrace_target_info *enable_btrace (thread_info *tp, -- 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