aboutsummaryrefslogtreecommitdiff
path: root/gdbserver
diff options
context:
space:
mode:
authorAlexandra Hájková <ahajkova@redhat.com>2024-03-19 12:34:34 +0100
committerAlexandra Hájková <ahajkova@redhat.com>2024-06-12 14:13:35 +0200
commitddb3f3d89cf62df6be3cb9e110504def19625160 (patch)
tree063614ca9d714628ed072731a7d2893d2d2c0292 /gdbserver
parent7065d0a33f732b7f0527f83ec0a352634b2d1ace (diff)
downloadbinutils-ddb3f3d89cf62df6be3cb9e110504def19625160.zip
binutils-ddb3f3d89cf62df6be3cb9e110504def19625160.tar.gz
binutils-ddb3f3d89cf62df6be3cb9e110504def19625160.tar.bz2
Add "error_message+" feature to qSupported
Add a new 'error_message' feature to the qSupported packet. When GDB supports this feature then gdbserver is able to send errors in the E.errtext format for the qRcmd and m packets. Update qRcmd packet and m packets documentation as qRcmd newly accepts errors in a E.errtext format. Previously these two packets didn't support E.errtext style errors. Approved-By: Tom Tromey <tom@tromey.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdbserver')
-rw-r--r--gdbserver/server.cc3
-rw-r--r--gdbserver/server.h5
2 files changed, 8 insertions, 0 deletions
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 6f9d2a8..ab9a33f 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -2699,6 +2699,8 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
if (target_supports_memory_tagging ())
cs.memory_tagging_feature = true;
}
+ else if (feature == "error-message+")
+ cs.error_message_supported = true;
else
{
/* Move the unknown features all together. */
@@ -4364,6 +4366,7 @@ captured_main (int argc, char *argv[])
cs.hwbreak_feature = 0;
cs.vCont_supported = 0;
cs.memory_tagging_feature = false;
+ cs.error_message_supported = false;
remote_open (port);
diff --git a/gdbserver/server.h b/gdbserver/server.h
index 0074818..eabedb9 100644
--- a/gdbserver/server.h
+++ b/gdbserver/server.h
@@ -192,6 +192,11 @@ struct client_state
/* If true, memory tagging features are supported. */
bool memory_tagging_feature = false;
+ /* If true then E.errtext style errors are supported everywhere,
+ including for the qRcmd and m packet. When false E.errtext errors
+ are not supported with qRcmd and m packets, but are still supported
+ everywhere else. This is for backward compatibility reasons. */
+ bool error_message_supported = false;
};
client_state &get_client_state ();