Remove the attach_flag global, and make it per-inferior.
* inferior.h (attach_flag): Delete. (inferior_process): Declare. * solib.c (update_solib_list): Adjust. * gnu-nat.c (gnu_create_inferior, gnu_attach): Adjust. * inf-ptrace.c (inf_ptrace_detach): Adjust. (inf_ptrace_files_info): Get it from the current inferior. * inf-ttrace.c (inf_ttrace_attach): Adjust. (inf_ttrace_files_info): Get it from the current inferior. * inflow.c (terminal_inferior, terminal_ours_1, set_sigint_trap) (clear_sigint_trap): Get it from the current process. * remote.c (extended_remote_attach_1) (extended_remote_create_inferior_1): Adjust. * top.c (quit_confirm, quit_target): Get it from the current inferior. * procfs.c (do_detach): Adjust. (procfs_wait): Get it from the event inferior. (procfs_files_info): Get it from the current inferior. * nto-procfs.c (procfs_files_info): Likewise. (procfs_attach): Adjust. Set the attach_flag here. (do_attach): Don't set it here. (procfs_detach): Don't clear it. (procfs_mourn_inferior): Don't clear it. * solib-osf.c (osf_solib_create_inferior_hook): Adjust. * target.c (attach_flag): Delete. (generic_mourn_inferior): Don't clear it. * win32-nat.c (get_win32_debug_event): Get it from the event process. (do_initial_win32_stuff): Add attaching argument. Set attach_flag in the inferior accordingly. (win32_attach): Don't set the attach_flag here. Pass 1 to do_intial_win32_stuff. (win32_files_info): Get it from the current inferior. (win32_create_inferior): Dont clear attach_flag here. Pass 0 to do_intial_win32_stuff.
This commit is contained in:
parent
d6b48e9c8b
commit
181e7f9393
15 changed files with 133 additions and 75 deletions
15
gdb/inflow.c
15
gdb/inflow.c
|
@ -277,15 +277,16 @@ terminal_inferior (void)
|
|||
|
||||
if (job_control)
|
||||
{
|
||||
struct inferior *inf = current_inferior ();
|
||||
#ifdef HAVE_TERMIOS
|
||||
result = tcsetpgrp (0, inferior_process_group);
|
||||
if (!attach_flag)
|
||||
if (!inf->attach_flag)
|
||||
OOPSY ("tcsetpgrp");
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SGTTY
|
||||
result = ioctl (0, TIOCSPGRP, &inferior_process_group);
|
||||
if (!attach_flag)
|
||||
if (!inf->attach_flag)
|
||||
OOPSY ("TIOCSPGRP");
|
||||
#endif
|
||||
}
|
||||
|
@ -334,6 +335,8 @@ terminal_ours_1 (int output_only)
|
|||
|
||||
if (!terminal_is_ours)
|
||||
{
|
||||
struct inferior *inf = current_inferior ();
|
||||
|
||||
#ifdef SIGTTOU
|
||||
/* Ignore this signal since it will happen when we try to set the
|
||||
pgrp. */
|
||||
|
@ -353,7 +356,7 @@ terminal_ours_1 (int output_only)
|
|||
inferior_ttystate = serial_get_tty_state (stdin_serial);
|
||||
|
||||
#ifdef PROCESS_GROUP_TYPE
|
||||
if (!attach_flag)
|
||||
if (!inf->attach_flag)
|
||||
/* If setpgrp failed in terminal_inferior, this would give us
|
||||
our process group instead of the inferior's. See
|
||||
terminal_inferior for details. */
|
||||
|
@ -626,7 +629,8 @@ static void (*osig) ();
|
|||
void
|
||||
set_sigint_trap (void)
|
||||
{
|
||||
if (attach_flag || inferior_thisrun_terminal)
|
||||
struct inferior *inf = current_inferior ();
|
||||
if (inf->attach_flag || inferior_thisrun_terminal)
|
||||
{
|
||||
osig = (void (*)()) signal (SIGINT, pass_signal);
|
||||
}
|
||||
|
@ -635,7 +639,8 @@ set_sigint_trap (void)
|
|||
void
|
||||
clear_sigint_trap (void)
|
||||
{
|
||||
if (attach_flag || inferior_thisrun_terminal)
|
||||
struct inferior *inf = current_inferior ();
|
||||
if (inf->attach_flag || inferior_thisrun_terminal)
|
||||
{
|
||||
signal (SIGINT, osig);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue