gdb/mi: Remove extra \n from tsv and and traceframe notifications
authorJan Vrany <jan.vrany@labware.com>
Thu, 25 Feb 2021 16:22:13 +0000 (16:22 +0000)
committerJan Vrany <jan.vrany@labware.com>
Thu, 25 Feb 2021 16:22:13 +0000 (16:22 +0000)
An extra \n in calls to fprintf_unfiltered() caused invalid MI records
to be emitted:

   > gdb -i mi3 -ex "target remote :7000"
   =thread-group-added,id="i1"
   ~"GNU gdb (GDB) 11.0.50.20201019-git\n"
   ~"Copyright (C) 2020 Free Software Foundation, Inc.\n"
   ...
   ~"Remote debugging using :7001\n"
   =tsv-created,name="trace_timestamp",initial="0"\n
   =thread-group-started,id="i1",pid="304973"

This commit fixes the problem.

gdb/ChangeLog:

        * gdb/mi/mi-interp.c (mi_traceframe_changed): Remove trailing \n from output.
        (mi_tsv_created): Likewise.
        (mi_tsv_deleted): Likewise.

gdb/ChangeLog
gdb/mi/mi-interp.c

index 019e7ac447efddf21c07c41fbb7eb62c45591307..27b0e0cfec0e8b86ea44641928644332a727c0d7 100644 (file)
@@ -1,3 +1,9 @@
+2021-02-25  Jan Vrany  <jan.vrany@labware.com>
+
+       * gdb/mi/mi-interp.c (mi_traceframe_changed): Remove trailing \n from output.
+       (mi_tsv_created): Likewise.
+       (mi_tsv_deleted): Likewise.
+
 2021-02-25  Tom de Vries  <tdevries@suse.de>
 
        PR symtab/27354
index 563b94d5b71951305ef2a9334c5a5fcfd976c27a..4c5612ee9ee0d3377dc9d1526b09c2c775007e57 100644 (file)
@@ -731,7 +731,7 @@ mi_traceframe_changed (int tfnum, int tpnum)
 
       if (tfnum >= 0)
        fprintf_unfiltered (mi->event_channel, "traceframe-changed,"
-                           "num=\"%d\",tracepoint=\"%d\"\n",
+                           "num=\"%d\",tracepoint=\"%d\"",
                            tfnum, tpnum);
       else
        fprintf_unfiltered (mi->event_channel, "traceframe-changed,end");
@@ -756,7 +756,7 @@ mi_tsv_created (const struct trace_state_variable *tsv)
       target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "tsv-created,"
-                         "name=\"%s\",initial=\"%s\"\n",
+                         "name=\"%s\",initial=\"%s\"",
                          tsv->name.c_str (), plongest (tsv->initial_value));
 
       gdb_flush (mi->event_channel);
@@ -780,9 +780,9 @@ mi_tsv_deleted (const struct trace_state_variable *tsv)
 
       if (tsv != NULL)
        fprintf_unfiltered (mi->event_channel, "tsv-deleted,"
-                           "name=\"%s\"\n", tsv->name.c_str ());
+                           "name=\"%s\"", tsv->name.c_str ());
       else
-       fprintf_unfiltered (mi->event_channel, "tsv-deleted\n");
+       fprintf_unfiltered (mi->event_channel, "tsv-deleted");
 
       gdb_flush (mi->event_channel);
     }