From 2450ad54ce04376d354acc948a52aa0f5efed56b Mon Sep 17 00:00:00 2001 From: Jan Vrany Date: Thu, 25 Feb 2021 16:22:13 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 6 ++++++ gdb/mi/mi-interp.c | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 019e7ac447e..27b0e0cfec0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2021-02-25 Jan Vrany + + * 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 PR symtab/27354 diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 563b94d5b71..4c5612ee9ee 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -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); } -- 2.30.2