Re: [PATCH] Don't compare the pid returned from wait() against inferior_ptid.

Pedro Alves
2020-07-08T18:40:53Z

My Internet is down today (and mobile data is crawling slow so no
tethering, probably same root issue, as its the same provider), so reply
via mobile it is.

This is OK.

A Qua, 8/07/2020, 01:54, John Baldwin <jhb@freebsd.org> escreveu:

> inf_ptrace::wait() needs to discard termination events reported by
> detached child processes. Previously it compared the returned pid
> against the pid in inferior_ptid to determine if a termination event
> should be discarded or reported. inferior_ptid is now null_ptid in
> wait() target methods, so this was always failing and never reporting
> exit events. Instead, report termination events whose pid matches any
> inferior belonging to the current target.
>
> gdb/ChangeLog:
>
> * inf-ptrace.c (inf_ptrace_target::wait): Don't compare against
> inferior_ptid.
> ---
> gdb/ChangeLog | 5 +++++
> gdb/inf-ptrace.c | 2 +-
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index c86d7e4647..d4cd0d014e 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,8 @@
> +2020-07-07 John Baldwin <jhb@FreeBSD.org>
> +
> + * inf-ptrace.c (inf_ptrace_target::wait): Don't compare against
> + inferior_ptid.
> +
> 2020-07-06 Andrew Burgess <andrew.burgess@embecosm.com>
>
> PR python/22748
> diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c
> index d25d226abb..ae0b0f7ff0 100644
> --- a/gdb/inf-ptrace.c
> +++ b/gdb/inf-ptrace.c
> @@ -347,7 +347,7 @@ inf_ptrace_target::wait (ptid_t ptid, struct
> target_waitstatus *ourstatus,
> }
>
> /* Ignore terminated detached child processes. */
> - if (!WIFSTOPPED (status) && pid != inferior_ptid.pid ())
> + if (!WIFSTOPPED (status) && find_inferior_pid (this, pid) ==
> nullptr)
> pid = -1;
> }
> while (pid == -1);
> --
> 2.25.1
>
>