aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-05-21 16:00:14 +0000
committerPedro Alves <palves@redhat.com>2009-05-21 16:00:14 +0000
commitd9d2d8b6c09d51c13c6c26a7bfa6bc1bbddf574a (patch)
tree4ca9a31ba1b55d69dfdc0821ebd47a4b4d22dd6d /gdb/target.c
parent47608cb1acc3880b330b8d3a8ad6aa29218046d9 (diff)
downloadgdb-d9d2d8b6c09d51c13c6c26a7bfa6bc1bbddf574a.zip
gdb-d9d2d8b6c09d51c13c6c26a7bfa6bc1bbddf574a.tar.gz
gdb-d9d2d8b6c09d51c13c6c26a7bfa6bc1bbddf574a.tar.bz2
* linux-nat.c (linux_nat_terminal_inferior)
(linux_nat_terminal_ours): Don't check sync_execution. * remote.c (remote_terminal_inferior, remote_terminal_ours): Don't check sync_execution. Update comments. * target.c (target_terminal_inferior): New. * target.h (target_terminal_inferior): Delete macro, and declare as function. * event-top.c (async_disable_stdin): Make idempotent. Don't give the target the terminal here. * inflow.c (terminal_ours_1): Don't return early without setting `terminal_is_ours'.
Diffstat (limited to 'gdb/target.c')
-rw-r--r--gdb/target.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c
index 8cbde1b..6dfa736 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -301,6 +301,18 @@ target_create_inferior (char *exec_file, char *args,
"could not find a target to create inferior");
}
+void
+target_terminal_inferior (void)
+{
+ /* A background resume (``run&'') should leave GDB in control of the
+ terminal. */
+ if (target_is_async_p () && !sync_execution)
+ return;
+
+ /* If GDB is resuming the inferior in the foreground, install
+ inferior's terminal modes. */
+ (*current_target.to_terminal_inferior) ();
+}
static int
nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,