Process dies on MAC

I do a fork and then waitpid2 with WNOHANG specified. This typically
works fine, but sometimes the child process just dies for some reason
and waitpid2 never gets anything back. The parent keeps waiting for it
evey now and then, but the wait call can never be satisfied really.
What is a good way to tell if a child process given a pid is still
running ? I saw there is a WUNTRACED option, but I am not clear what
it does. It mentions something about stopped processes, but these
child processes just dissapear. If I do a 'ps -ef | grep ’ I no
longer see them when for a while previously they where there.