[Lldb-commits] [lldb] [lldb] Add QSupported key to report watchpoint types supported (PR #80376)

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 2 11:06:16 PST 2024


================
@@ -38,7 +38,44 @@ read packet: +
 read packet: $OK#9a
 send packet: +
 
+//----------------------------------------------------------------------
+// "QSupported"
+//
+// BRIEF
+//  Query the GDB remote server for features it supports
+//
+// PRIORITY TO IMPLEMENT
+//  Optional.
+//----------------------------------------------------------------------
 
+QSupported is a standard GDB Remote Serial Protocol packet, but
+there are several additions to the response that lldb can parse.
+An example exchange:
+
+send packet: qSupported:xmlRegisters=i386,arm,mips,arc;multiprocess+;fork-events+;vfork-events+
+
+read packet: qXfer:features:read+;PacketSize=20000;qEcho+;native-signals+;SupportedCompressions=lzfse,zlib-deflate,lz4,lzma;SupportedWatchpointTypes =aarch64-mask,aarch64-bas;
+
+In this example, three lldb extensions are reported:
+  PacketSize=20000
+    The base16 maximum packet size that the GDB Remote Serial stub
----------------
jasonmolenda wrote:

I could say "the hex maximum packet size", I suppose, is that clearer?  One of the annoying things (IMO) about gdb remote serial protocol is that many numbers are hex numbers without a 0x prefix, but sometimes (probably mistakes) they're base 10.  So if you see a number like "2000" in a log file, you don't know what that number is.

The naming in this text file is a bit all over the place.  The protocol is called "gdb remote serial protocol".  The opposite side from lldb, debugserver or lldb-server, is called the stub.  Some places call it the "gdb RSP stub", some just say "stub".

https://github.com/llvm/llvm-project/pull/80376


More information about the lldb-commits mailing list