aboutsummaryrefslogtreecommitdiff
path: root/gdb/fork-child.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/fork-child.c')
-rw-r--r--gdb/fork-child.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/fork-child.c b/gdb/fork-child.c
index cbde5db..c8e7683 100644
--- a/gdb/fork-child.c
+++ b/gdb/fork-child.c
@@ -303,10 +303,16 @@ fork_inferior (char *exec_file_arg, char *allargs, char **env,
if (debug_fork)
sleep (debug_fork);
- /* Run inferior in a separate process group. */
- debug_setpgrp = gdb_setpgid ();
- if (debug_setpgrp == -1)
- perror ("setpgrp failed in child");
+ /* Create a new session for the inferior process, if necessary.
+ It will also place the inferior in a separate process group. */
+ if (create_tty_session () <= 0)
+ {
+ /* No session was created, but we still want to run the inferior
+ in a separate process group. */
+ debug_setpgrp = gdb_setpgid ();
+ if (debug_setpgrp == -1)
+ perror ("setpgrp failed in child");
+ }
/* Ask the tty subsystem to switch to the one we specified
earlier (or to share the current terminal, if none was