* linux-low.c (linux_create_inferior): Call setpgid. Return

the new PID.
        (unstopped_p, linux_signal_pid): Remove.
        (linux_target_ops): Remove linux_signal_pid.
        * remote-utils.c (putpkt, input_interrupt): Use signal_pid
        global instead of target method.
        * target.h (struct target_ops): Remove signal_pid.  Update comment
        for create_inferior.
        * server.c (signal_pid): New variable.
        (create_inferior): Set signal_pid.  Block SIGTTOU and SIGTTIN in
        gdbserver.  Set the child to be the foreground process group.
        (attach_inferior): Set signal_pid.
This commit is contained in:
Daniel Jacobowitz
2002-08-29 18:50:25 +00:00
parent e551c2572e
commit a9fa9f7daf
5 changed files with 49 additions and 41 deletions

View File

@@ -149,6 +149,8 @@ linux_create_inferior (char *program, char **allargs)
signal (SIGRTMIN + 1, SIG_DFL);
setpgid (0, 0);
execv (program, allargs);
fprintf (stderr, "Cannot exec %s: %s.\n", program,
@@ -160,7 +162,7 @@ linux_create_inferior (char *program, char **allargs)
new_process = add_process (pid);
add_thread (pid, new_process);
return 0;
return pid;
}
/* Attach to an inferior process. */
@@ -1228,34 +1230,6 @@ linux_look_up_symbols (void)
#endif
}
/* Return 1 if this process is not stopped. */
static int
unstopped_p (struct inferior_list_entry *entry, void *dummy)
{
struct process_info *process = (struct process_info *) entry;
if (process->stopped)
return 0;
return 1;
}
static int
linux_signal_pid ()
{
struct inferior_list_entry *process;
process = find_inferior (&all_processes, unstopped_p, NULL);
if (process == NULL)
{
warning ("no unstopped process");
return inferior_pid;
}
return pid_of ((struct process_info *) process);
}
static struct target_ops linux_target_ops = {
linux_create_inferior,
@@ -1269,7 +1243,6 @@ static struct target_ops linux_target_ops = {
linux_read_memory,
linux_write_memory,
linux_look_up_symbols,
linux_signal_pid,
};
static void