aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/gdbserver/ChangeLog4
-rw-r--r--gdb/gdbserver/gdbreplay.c20
2 files changed, 22 insertions, 2 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index e9fe5ab..b608659 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,7 @@
+2019-02-27 Tom Tromey <tromey@adacore.com>
+
+ * gdbreplay.c (logchar): Handle \r\n.
+
2019-02-07 Alan Hayward <alan.hayward@arm.com>
* linux-low.c (linux_attach): Add process before lwp.
diff --git a/gdb/gdbserver/gdbreplay.c b/gdb/gdbserver/gdbreplay.c
index 26a5553..bda8095 100644
--- a/gdb/gdbserver/gdbreplay.c
+++ b/gdb/gdbserver/gdbreplay.c
@@ -316,10 +316,26 @@ logchar (FILE *fp)
int ch2;
ch = fgetc (fp);
- fputc (ch, stdout);
- fflush (stdout);
+ if (ch != '\r')
+ {
+ fputc (ch, stdout);
+ fflush (stdout);
+ }
switch (ch)
{
+ /* Treat \r\n as a newline. */
+ case '\r':
+ ch = fgetc (fp);
+ if (ch == '\n')
+ ch = EOL;
+ else
+ {
+ ungetc (ch, fp);
+ ch = '\r';
+ }
+ fputc (ch == EOL ? '\n' : '\r', stdout);
+ fflush (stdout);
+ break;
case '\n':
ch = EOL;
break;