* lin-lwp.c (child_wait): Ignore exit statuses for processes other

than inferior_ptid.
	(lin_lwp_wait): Ignore exit statuses for unknown LWPs.
This commit is contained in:
Daniel Jacobowitz 2003-01-09 19:14:46 +00:00
parent 479ab5a00d
commit b3ba1b4442
2 changed files with 26 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2003-01-09 Daniel Jacobowitz <drow@mvista.com>
* lin-lwp.c (child_wait): Ignore exit statuses for processes other
than inferior_ptid.
(lin_lwp_wait): Ignore exit statuses for unknown LWPs.
2003-01-09 Andrew Cagney <ac131313@redhat.com> 2003-01-09 Andrew Cagney <ac131313@redhat.com>
* frame.h (frame_obstack_zalloc): Replace frame_obstack_alloc. * frame.h (frame_obstack_zalloc): Replace frame_obstack_alloc.

View file

@ -1,5 +1,5 @@
/* Multi-threaded debugging support for GNU/Linux (LWP layer). /* Multi-threaded debugging support for GNU/Linux (LWP layer).
Copyright 2000, 2001 Free Software Foundation, Inc. Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GDB. This file is part of GDB.
@ -1062,6 +1062,14 @@ child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
save_errno = errno; save_errno = errno;
/* Make sure we don't report an event for the exit of the
original program, if we've detached from it. */
if (pid != -1 && ! WIFSTOPPED (status) && pid != GET_PID (inferior_ptid))
{
pid = -1;
save_errno = EINTR;
}
clear_sigio_trap (); clear_sigio_trap ();
clear_sigint_trap (); clear_sigint_trap ();
} }
@ -1206,6 +1214,17 @@ lin_lwp_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
} }
lp = find_lwp_pid (pid_to_ptid (lwpid)); lp = find_lwp_pid (pid_to_ptid (lwpid));
/* Make sure we don't report an event for the exit of an LWP not in
our list, i.e. not part of the current process. This can happen
if we detach from a program we original forked and then it
exits. */
if (! WIFSTOPPED (status) && ! lp)
{
status = 0;
continue;
}
if (! lp) if (! lp)
{ {
lp = add_lwp (BUILD_LWP (lwpid, GET_PID (inferior_ptid))); lp = add_lwp (BUILD_LWP (lwpid, GET_PID (inferior_ptid)));