diff options
-rw-r--r-- | gdb/gdbserver/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index e718fa6..3168606 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2004-03-23 Daniel Jacobowitz <drow@mvista.com> + + * linux-low.c (linux_wait): Clear all_processes list also. + 2004-03-12 Daniel Jacobowitz <drow@mvista.com> * linux-low.c: Include <errno.h>. Remove extern declaration of diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index a3d6a54..5733180 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -685,13 +685,17 @@ retry: fprintf (stderr, "\nChild exited with retcode = %x \n", WEXITSTATUS (w)); *status = 'W'; clear_inferiors (); + free (all_processes.head); + all_processes.head = all_processes.tail = NULL; return ((unsigned char) WEXITSTATUS (w)); } else if (!WIFSTOPPED (w)) { fprintf (stderr, "\nChild terminated with signal = %x \n", WTERMSIG (w)); - clear_inferiors (); *status = 'X'; + clear_inferiors (); + free (all_processes.head); + all_processes.head = all_processes.tail = NULL; return ((unsigned char) WTERMSIG (w)); } } |