summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/dve3900-rom.c6
-rw-r--r--gdb/monitor.c10
-rw-r--r--gdb/monitor.h4
4 files changed, 24 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 471b0bc61b6..4a920227a88 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+Mon Jan 5 20:21:59 1998 Mark Alexander <marka@cygnus.com>
+
+ * monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define.
+ * monitor.c (monitor_wait): Echo program output.
+ * dve3900-rom.c (_initialize_r3900_rom): Remove MO_HANDLE_NL flag,
+ add MO_PRINT_PROGRAM_OUTPUT flag.
+
Fri Jan 2 18:48:58 1998 Mark Alexander <marka@cygnus.com>
* configure.in: Double up brackets in shell case pattern.
diff --git a/gdb/dve3900-rom.c b/gdb/dve3900-rom.c
index 511b4fede80..766e2d583de 100644
--- a/gdb/dve3900-rom.c
+++ b/gdb/dve3900-rom.c
@@ -403,10 +403,10 @@ r3900_open (args, from_tty)
void
_initialize_r3900_rom ()
{
- r3900_cmds.flags = MO_HANDLE_NL |
- MO_NO_ECHO_ON_OPEN |
+ r3900_cmds.flags = MO_NO_ECHO_ON_OPEN |
MO_ADDR_BITS_REMOVE |
- MO_CLR_BREAK_USES_ADDR;
+ MO_CLR_BREAK_USES_ADDR |
+ MO_PRINT_PROGRAM_OUTPUT;
r3900_cmds.init = r3900_inits;
r3900_cmds.cont = "g\r";
diff --git a/gdb/monitor.c b/gdb/monitor.c
index 97f5a504b4f..1650800130b 100644
--- a/gdb/monitor.c
+++ b/gdb/monitor.c
@@ -798,6 +798,16 @@ monitor_wait (pid, status)
}
while (resp_len < 0);
+ /* Print any output characters that were preceded by ^O. */
+ if (current_monitor->flags & MO_PRINT_PROGRAM_OUTPUT)
+ {
+ int i;
+
+ for (i = 0; i < resp_len - 1; i++)
+ if (buf[i] == 0x0f)
+ putchar_unfiltered (buf[++i]);
+ }
+
signal (SIGINT, ofunc);
timeout = old_timeout;
diff --git a/gdb/monitor.h b/gdb/monitor.h
index f6c22c67cdd..14d99c9f827 100644
--- a/gdb/monitor.h
+++ b/gdb/monitor.h
@@ -201,6 +201,10 @@ struct monitor_ops
#define MO_ADDR_BITS_REMOVE 0x100000
+/* If set, then display target program output if prefixed by ^O. */
+
+#define MO_PRINT_PROGRAM_OUTPUT 0x200000
+
#define SREC_SIZE 160
extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops,