[binutils-gdb] gdbserver: do not announce static tracepoint support

Tankut Baris Aktemur aktemur@sourceware.org
Tue Jan 14 09:29:56 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1c3084419a42aab9c65b03f1759248b1251c9fe5

commit 1c3084419a42aab9c65b03f1759248b1251c9fe5
Author: Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Date:   Tue Jan 14 10:10:30 2025 +0100

    gdbserver: do not announce static tracepoint support
    
    Remove the announcement that `qXfer:statictrace:read` and
    `StaticTracepoints` are supported.  Associated to this, remove the
    handling of "qTfSTM", "qTsSTM", and "qTSTMat" packets and the
    qXfer:statictrace:read handling.
    
    Approved-By: Simon Marchi <simon.marchi@efficios.com>

Diff:
---
 gdbserver/server.cc     | 26 --------------
 gdbserver/tracepoint.cc | 95 -------------------------------------------------
 gdbserver/tracepoint.h  |  4 ---
 3 files changed, 125 deletions(-)

diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 55898f59556..bc591599b02 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -1965,29 +1965,6 @@ handle_qxfer_siginfo (const char *annex,
   return the_target->qxfer_siginfo (annex, readbuf, writebuf, offset, len);
 }
 
-/* Handle qXfer:statictrace:read.  */
-
-static int
-handle_qxfer_statictrace (const char *annex,
-			  gdb_byte *readbuf, const gdb_byte *writebuf,
-			  ULONGEST offset, LONGEST len)
-{
-  client_state &cs = get_client_state ();
-  ULONGEST nbytes;
-
-  if (writebuf != NULL)
-    return -2;
-
-  if (annex[0] != '\0' || current_thread == NULL 
-      || cs.current_traceframe == -1)
-    return -1;
-
-  if (traceframe_read_sdata (cs.current_traceframe, offset,
-			     readbuf, len, &nbytes))
-    return -1;
-  return nbytes;
-}
-
 /* Helper for handle_qxfer_threads_proper.
    Emit the XML to describe the thread of INF.  */
 
@@ -2324,7 +2301,6 @@ static const struct qxfer qxfer_packets[] =
     { "libraries-svr4", handle_qxfer_libraries_svr4 },
     { "osdata", handle_qxfer_osdata },
     { "siginfo", handle_qxfer_siginfo },
-    { "statictrace", handle_qxfer_statictrace },
     { "threads", handle_qxfer_threads },
     { "traceframe-info", handle_qxfer_traceframe_info },
   };
@@ -2842,9 +2818,7 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
 	  strcat (own_buf, ";DisconnectedTracing+");
 	  if (gdb_supports_qRelocInsn && target_supports_fast_tracepoints ())
 	    strcat (own_buf, ";FastTracepoints+");
-	  strcat (own_buf, ";StaticTracepoints+");
 	  strcat (own_buf, ";InstallInTrace+");
-	  strcat (own_buf, ";qXfer:statictrace:read+");
 	  strcat (own_buf, ";qXfer:traceframe-info:read+");
 	  strcat (own_buf, ";EnableDisableTracepoints+");
 	  strcat (own_buf, ";QTBuffer:size+");
diff --git a/gdbserver/tracepoint.cc b/gdbserver/tracepoint.cc
index 8b503302763..46fff326622 100644
--- a/gdbserver/tracepoint.cc
+++ b/gdbserver/tracepoint.cc
@@ -3791,33 +3791,6 @@ cmd_qtsv (char *packet)
     strcpy (packet, "l");
 }
 
-/* Return the first static tracepoint marker, and initialize the state
-   machine that will iterate through all the static tracepoints
-   markers.  */
-
-static void
-cmd_qtfstm (char *packet)
-{
-  write_e_static_tracepoints_not_supported (packet);
-}
-
-/* Return additional static tracepoints markers.  */
-
-static void
-cmd_qtsstm (char *packet)
-{
-  write_e_static_tracepoints_not_supported (packet);
-}
-
-/* Return the definition of the static tracepoint at a given address.
-   Result packet is the same as qTsST's.  */
-
-static void
-cmd_qtstmat (char *packet)
-{
-  write_e_static_tracepoints_not_supported (packet);
-}
-
 /* Sent the agent a command to close it.  */
 
 void
@@ -4133,21 +4106,6 @@ handle_tracepoint_query (char *packet)
       cmd_qtbuffer (packet);
       return 1;
     }
-  else if (strcmp ("qTfSTM", packet) == 0)
-    {
-      cmd_qtfstm (packet);
-      return 1;
-    }
-  else if (strcmp ("qTsSTM", packet) == 0)
-    {
-      cmd_qtsstm (packet);
-      return 1;
-    }
-  else if (startswith (packet, "qTSTMat:"))
-    {
-      cmd_qtstmat (packet);
-      return 1;
-    }
   else if (strcmp ("qTMinFTPILen", packet) == 0)
     {
       cmd_qtminftpilen (packet);
@@ -5176,59 +5134,6 @@ traceframe_read_tsv (int tsvnum, LONGEST *val)
   return !found;
 }
 
-/* Read a requested block of static tracepoint data from a trace
-   frame.  */
-
-int
-traceframe_read_sdata (int tfnum, ULONGEST offset,
-		       unsigned char *buf, ULONGEST length,
-		       ULONGEST *nbytes)
-{
-  struct traceframe *tframe;
-  unsigned char *database, *dataptr;
-  unsigned int datasize;
-  unsigned short mlen;
-
-  trace_debug ("traceframe_read_sdata");
-
-  tframe = find_traceframe (tfnum);
-
-  if (!tframe)
-    {
-      trace_debug ("traceframe %d not found", tfnum);
-      return 1;
-    }
-
-  datasize = tframe->data_size;
-  database = &tframe->data[0];
-
-  /* Iterate through a traceframe's blocks, looking for static
-     tracepoint data.  */
-  dataptr = traceframe_find_block_type (database, datasize,
-					tfnum, 'S');
-  if (dataptr != NULL)
-    {
-      memcpy (&mlen, dataptr, sizeof (mlen));
-      dataptr += sizeof (mlen);
-      if (offset < mlen)
-	{
-	  if (offset + length > mlen)
-	    length = mlen - offset;
-
-	  memcpy (buf, dataptr, length);
-	  *nbytes = length;
-	}
-      else
-	*nbytes = 0;
-      return 0;
-    }
-
-  trace_debug ("traceframe %d has no static trace data", tfnum);
-
-  *nbytes = 0;
-  return 0;
-}
-
 /* Callback for traceframe_walk_blocks.  Builds a traceframe-info
    object.  DATA is pointer to a string holding the traceframe-info
    object being built.  */
diff --git a/gdbserver/tracepoint.h b/gdbserver/tracepoint.h
index e74458abbf7..b2e410f1df8 100644
--- a/gdbserver/tracepoint.h
+++ b/gdbserver/tracepoint.h
@@ -87,10 +87,6 @@ int fetch_traceframe_registers (int tfnum,
 				struct regcache *regcache,
 				int regnum);
 
-int traceframe_read_sdata (int tfnum, ULONGEST offset,
-			   unsigned char *buf, ULONGEST length,
-			   ULONGEST *nbytes);
-
 int traceframe_read_info (int tfnum, std::string *buffer);
 
 /* If a thread is determined to be collecting a fast tracepoint, this


More information about the Gdb-cvs mailing list