static int start_inferior (char *argv[], char *statusptr) { #ifdef SIGTTOU signal (SIGTTOU, SIG_DFL); signal (SIGTTIN, SIG_DFL); #endif signal_pid = create_inferior (argv[0], argv); /* FIXME: we don't actually know at this point that the create actually succeeded. We won't know that until we wait. */ printf_filtered ("Process %s created; pid = %ld\n", argv[0], signal_pid); #ifdef SIGTTOU signal (SIGTTOU, SIG_IGN); signal (SIGTTIN, SIG_IGN); terminal_fd = fileno (stderr); old_foreground_pgrp = tcgetpgrp (terminal_fd); tcsetpgrp (terminal_fd, signal_pid); atexit (restore_old_foreground_pgrp); #endif /* Wait till we are at 1st instruction in program, return signal number (assuming success). */ return mywait (statusptr, 0); }
static int start_inferior (char *argv[], char *statusptr) { #ifdef SIGTTOU signal (SIGTTOU, SIG_DFL); signal (SIGTTIN, SIG_DFL); #endif signal_pid = create_inferior (argv[0], argv); fprintf (stderr, "Process %s created; pid = %ld\n", argv[0], signal_pid); fflush (stderr); #ifdef SIGTTOU signal (SIGTTOU, SIG_IGN); signal (SIGTTIN, SIG_IGN); terminal_fd = fileno (stderr); old_foreground_pgrp = tcgetpgrp (terminal_fd); tcsetpgrp (terminal_fd, signal_pid); atexit (restore_old_foreground_pgrp); #endif /* Wait till we are at 1st instruction in program, return signal number. */ return mywait (statusptr, 0); }
static unsigned char start_inferior (char *argv[], char *statusptr) { inferior_pid = create_inferior (argv[0], argv); fprintf (stderr, "Process %s created; pid = %d\n", argv[0], inferior_pid); /* Wait till we are at 1st instruction in program, return signal number. */ return mywait (statusptr); }
static unsigned char start_inferior (char *argv[], char *statusptr) { signal (SIGTTOU, SIG_DFL); signal (SIGTTIN, SIG_DFL); signal_pid = create_inferior (argv[0], argv); fprintf (stderr, "Process %s created; pid = %d\n", argv[0], signal_pid); signal (SIGTTOU, SIG_IGN); signal (SIGTTIN, SIG_IGN); tcsetpgrp (fileno (stderr), signal_pid); /* Wait till we are at 1st instruction in program, return signal number. */ return mywait (statusptr, 0); }
static int start_inferior (char **argv, char *statusptr) { char **new_argv = argv; attached = 0; if (wrapper_argv != NULL) { int i, count = 1; for (i = 0; wrapper_argv[i] != NULL; i++) count++; for (i = 0; argv[i] != NULL; i++) count++; new_argv = alloca (sizeof (char *) * count); count = 0; for (i = 0; wrapper_argv[i] != NULL; i++) new_argv[count++] = wrapper_argv[i]; for (i = 0; argv[i] != NULL; i++) new_argv[count++] = argv[i]; new_argv[count] = NULL; } #ifdef SIGTTOU signal (SIGTTOU, SIG_DFL); signal (SIGTTIN, SIG_DFL); #endif signal_pid = create_inferior (new_argv[0], new_argv); /* FIXME: we don't actually know at this point that the create actually succeeded. We won't know that until we wait. */ fprintf (stderr, "Process %s created; pid = %ld\n", argv[0], signal_pid); fflush (stderr); #ifdef SIGTTOU signal (SIGTTOU, SIG_IGN); signal (SIGTTIN, SIG_IGN); terminal_fd = fileno (stderr); old_foreground_pgrp = tcgetpgrp (terminal_fd); tcsetpgrp (terminal_fd, signal_pid); atexit (restore_old_foreground_pgrp); #endif if (wrapper_argv != NULL) { struct thread_resume resume_info; int sig; resume_info.thread = -1; resume_info.step = 0; resume_info.sig = 0; resume_info.leave_stopped = 0; sig = mywait (statusptr, 0); if (*statusptr != 'T') return sig; do { (*the_target->resume) (&resume_info); sig = mywait (statusptr, 0); if (*statusptr != 'T') return sig; } while (sig != TARGET_SIGNAL_TRAP); return sig; } /* Wait till we are at 1st instruction in program, return signal number (assuming success). */ return mywait (statusptr, 0); }