summaryrefslogtreecommitdiff
path: root/gdb/printcmd.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-10-17 18:29:27 +0000
committerTom Tromey <tromey@redhat.com>2013-10-17 18:29:27 +0000
commitd457a0ef127b9827bd0d873d5943eae70c6c69c5 (patch)
tree490c21e215278bacf3a4139f7d6a891cfbce632c /gdb/printcmd.c
parentffecfbcfeeddd2815d61f4889aadf221a351f7a1 (diff)
downloadgdb-d457a0ef127b9827bd0d873d5943eae70c6c69c5.tar.gz
fix for PR gdb/15995
This patch fixes PR gdb/15995. The bug here is that gdb's printf command does not flush the output stream. This makes a printf that is not newline-terminated interleave incorrectly with other forms of output, such as that generated via a call to an external program using "shell". I note that the "output" command already does this flushing. The fix is to call gdb_flush in printf_command. Built and regtested on x86-64 Fedora 18. New test case included. PR gdb/15995: * printcmd.c (printcmd): Call gdb_flush. * gdb.base/printcmds.exp (test_printf): Test printf flushing.
Diffstat (limited to 'gdb/printcmd.c')
-rw-r--r--gdb/printcmd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 751cd2b797f..9bca6dd88b8 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -2458,6 +2458,7 @@ static void
printf_command (char *arg, int from_tty)
{
ui_printf (arg, gdb_stdout);
+ gdb_flush (gdb_stdout);
}
/* Implement the "eval" command. */