--- a/gdbserver/tracepoint.c +++ b/gdbserver/tracepoint.c @@ -4120,6 +4120,22 @@ cmd_qtnotes (char *own_buf) write_ok (own_buf); } +static char *default_collect_src; + +static void +cmd_qtdc (char *packet) +{ + sprintf (packet, "DC%s", default_collect_src); +} + +static void +cmd_qtddcsrc (char *own_buf) +{ + xfree (default_collect_src); + default_collect_src = xstrdup (own_buf + strlen ("QTDDCsrc:")); + write_ok (own_buf); +} + int handle_tracepoint_general_set (char *packet) { @@ -4194,6 +4210,11 @@ handle_tracepoint_general_set (char *pac cmd_qtnotes (packet); return 1; } + else if (strncmp ("QTDDCsrc:", packet, strlen ("QTDDCsrc:")) == 0) + { + cmd_qtddcsrc (packet); + return 1; + } return 0; } @@ -4261,6 +4282,11 @@ handle_tracepoint_query (char *packet) cmd_qtminftpilen (packet); return 1; } + else if (strcmp ("qTDC", packet) == 0) + { + cmd_qtdc (packet); + return 1; + } return 0; } @@ -7332,5 +7358,7 @@ initialize_tracepoint: mmap'ing jump pad strcpy (gdb_trampoline_buffer_error, "No errors reported"); initialize_low_tracepoint (); +#else + default_collect_src = xstrdup (""); #endif }