[PATCH] Handle \r\n in gdbreplay

Tom Tromey tromey@adacore.com
Thu Feb 21 14:05:00 GMT 2019


I tried gdbreplay yesterday, but the remotelogfile I received was made
on Windows, so the lines were terminated with \r\n rather than plain
\n.

This patch changes gdbreplay to allow \r or \r\n line termination when
reading the log file.

gdb/gdbserver/ChangeLog
2019-02-21  Tom Tromey  <tromey@adacore.com>

	* gdbreplay.c (logchar): Handle \r and \r\n.
---
 gdb/gdbserver/ChangeLog   |  4 ++++
 gdb/gdbserver/gdbreplay.c | 15 +++++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/gdb/gdbserver/gdbreplay.c b/gdb/gdbserver/gdbreplay.c
index 26a55533ff6..b1a9401909c 100644
--- a/gdb/gdbserver/gdbreplay.c
+++ b/gdb/gdbserver/gdbreplay.c
@@ -316,10 +316,21 @@ logchar (FILE *fp)
   int ch2;
 
   ch = fgetc (fp);
-  fputc (ch, stdout);
-  fflush (stdout);
+  if (ch != '\r')
+    {
+      fputc (ch, stdout);
+      fflush (stdout);
+    }
   switch (ch)
     {
+      /* Treat all of \r, \n, and \r\n as a newline.  */
+    case '\r':
+      ch = fgetc (fp);
+      if (ch != '\n')
+	ungetc (ch, fp);
+      fputc ('\n', stdout);
+      fflush (stdout);
+      /* Fall through.  */
     case '\n':
       ch = EOL;
       break;
-- 
2.20.1



More information about the Gdb-patches mailing list