From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2104) id 887A93858D39; Wed, 9 Nov 2022 17:01:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 887A93858D39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1668013293; bh=LR6n2Ey6a8ebeB4o9CVPZgmG5o/zlvqjz7Wf2PCAKhc=; h=From:To:Subject:Date:From; b=gJQqiL6k15SC064z8+4ZLyR8eqAr4+YHbZ51OJmw5HsFrrvJJLtONgWbBuwNAZ57M KgqlieTNJQkrk9wkIcXvl0CYkcfin0uSmrcKPObnLHDAopvBvXSdkqHlNNVeKFFnob jb+cnA1Ox5N/y0i+aMKzyr2RlYjfqf6n6gcU0LAQ= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tankut Baris Aktemur To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdbserver: do not report btrace support if target does not announce it X-Act-Checkin: binutils-gdb X-Git-Author: Tankut Baris Aktemur X-Git-Refname: refs/heads/master X-Git-Oldrev: 97e20099d3b02baafe244e975aebe09020d2ab34 X-Git-Newrev: 8263b346fa07e3f679b05a8b369d491af51e6de8 Message-Id: <20221109170133.887A93858D39@sourceware.org> Date: Wed, 9 Nov 2022 17:01:33 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D8263b346fa07= e3f679b05a8b369d491af51e6de8 commit 8263b346fa07e3f679b05a8b369d491af51e6de8 Author: Tankut Baris Aktemur Date: Wed Nov 9 17:46:21 2022 +0100 gdbserver: do not report btrace support if target does not announce it =20 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. Diff: --- 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 ch= ar *annex, =20 #ifdef HAVE_LINUX_BTRACE =20 +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 @@ public: bool supports_agent () override; =20 #ifdef HAVE_LINUX_BTRACE + bool supports_btrace () override; + btrace_target_info *enable_btrace (thread_info *tp, const btrace_config *conf) override; =20 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+"); =20 - supported_btrace_packets (own_buf); + if (the_target->supports_btrace ()) + supported_btrace_packets (own_buf); =20 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; } =20 +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 @@ public: /* Return true if target supports debugging agent. */ virtual bool supports_agent (); =20 + /* 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,