diff options
author | Pedro Alves <palves@redhat.com> | 2009-05-18 00:58:38 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2009-05-18 00:58:38 +0000 |
commit | 7e1789f556ec6ba5c736abcb81e0a08ba31673ab (patch) | |
tree | 0954250144b4f488a58603624f66727f7f3fd731 /gdb/inferior.c | |
parent | 7a1c0c5cb126af0e3620150235e5cdf34d5c6a69 (diff) | |
download | gdb-7e1789f556ec6ba5c736abcb81e0a08ba31673ab.zip gdb-7e1789f556ec6ba5c736abcb81e0a08ba31673ab.tar.gz gdb-7e1789f556ec6ba5c736abcb81e0a08ba31673ab.tar.bz2 |
* inflow.h (our_process_group): Remove declaration.
(inferior_process_group): Delete global variable declaration.
(inferior_process_group): New function declaration.
* inflow.c: Include observer.h.
(inferior_ttystate, our_ttystate, tflags_inferior, tflags_ours):
Delete.
(struct terminal_info): New struct.
(our_terminal_info): New global.
(inferior_process_group): New function.
(inferior_thisrun_terminal): Extend description comment.
(gdb_has_a_terminal): Adjust to write to our_terminal_info fields
instead of globals.
(terminal_init_inferior_with_pgrp): Adjust to per-inferior
terminal settings.
(terminal_inferior): Ditto.
(terminal_ours_1): Ditto.
(inflow_new_inferior, inflow_inferior_exit): New functions.
(child_terminal_info): Adjust to per-inferior terminal settings.
(osig_set): New global.
(set_sigint_trap): Adjust to per-inferior terminal settings. Set
or clear `osig_set' accordingly.
(clear_sigint_trap): Check `osig_set' to decide wheater to restore
SIGINT handler, instead of checking the current inferior (which
may be none).
(_initialize_inflow): Attach inflow_new_inferior and
inflow_inferior_exit to the "new_inferior" and "inferior_exit"
notifications, respectively.
* inferior.h (struct terminal_info): Forward declare.
(struct inferior): Add `terminal_info' field.
* inferior.c (delete_inferior_1): Notify the inferior_exit
observers before removing the inferior from the lists and deleting
it.
* inf-ptrace.c (inf_ptrace_stop): `inferior_process_group' is now
a function instead of a variable. Adjust.
* procfs.c (procfs_stop): Ditto.
Diffstat (limited to 'gdb/inferior.c')
-rw-r--r-- | gdb/inferior.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gdb/inferior.c b/gdb/inferior.c index e19a898..e060a1b 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -139,19 +139,21 @@ delete_inferior_1 (int pid, int silent) if (!inf) return; - if (infprev) - infprev->next = inf->next; - else - inferior_list = inf->next; - - free_inferior (inf); - arg.pid = pid; arg.silent = silent; iterate_over_threads (delete_thread_of_inferior, &arg); + /* Notify the observers before removing the inferior from the list, + so that the observers have a change to look it up. */ observer_notify_inferior_exit (pid); + + if (infprev) + infprev->next = inf->next; + else + inferior_list = inf->next; + + free_inferior (inf); } void |