gdb/mi: Remove extra \n from tsv and and traceframe notifications

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.
This commit is contained in:
Jan Vrany 2021-02-25 16:22:13 +00:00
parent 30c80d8833
commit 2450ad54ce
2 changed files with 10 additions and 4 deletions

View 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

View 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);
}