/* Low level interface to ptrace, for GDB when running under Unix.
- Copyright (C) 1986-1996, 1998-2012 Free Software Foundation, Inc.
+ Copyright (C) 1986-2013 Free Software Foundation, Inc.
This file is part of GDB.
void
terminal_init_inferior_with_pgrp (int pgrp)
{
+ struct inferior *inf = current_inferior ();
+ struct terminal_info *tinfo = get_inflow_inferior_data (inf);
+
+#ifdef PROCESS_GROUP_TYPE
+ /* Store the process group even without a terminal as it is used not
+ only to reset the tty foreground process group, but also to
+ interrupt the inferior. */
+ tinfo->process_group = pgrp;
+#endif
+
if (gdb_has_a_terminal ())
{
- struct inferior *inf = current_inferior ();
- struct terminal_info *tinfo = get_inflow_inferior_data (inf);
-
xfree (tinfo->ttystate);
tinfo->ttystate = serial_copy_tty_state (stdin_serial,
our_terminal_info.ttystate);
-#ifdef PROCESS_GROUP_TYPE
- tinfo->process_group = pgrp;
-#endif
-
/* Make sure that next time we call terminal_inferior (which will be
before the program runs, as it needs to be), we install the new
process group. */
}
void
-child_terminal_info (char *args, int from_tty)
+child_terminal_info (const char *args, int from_tty)
{
struct inferior *inf;
struct terminal_info *tinfo;
observer_attach_inferior_exit (inflow_inferior_exit);
inflow_inferior_data
- = register_inferior_data_with_cleanup (inflow_inferior_data_cleanup);
+ = register_inferior_data_with_cleanup (NULL, inflow_inferior_data_cleanup);
}