aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdbserver/linux-low.cc6
-rw-r--r--gdbserver/linux-low.h2
-rw-r--r--gdbserver/server.cc3
-rw-r--r--gdbserver/target.cc6
-rw-r--r--gdbserver/target.h3
5 files changed, 19 insertions, 1 deletions
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 1676328..0cbfeb9 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 79be31b..1594f06 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -275,6 +275,8 @@ public:
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 366a843..aaef38e 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 adcfe6e..c06a676 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 6c536a3..18ab969 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 ();
+ /* 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,