However, if you want to debug
the child process there is a workaround which isn’t too painful. Put a
call to sleep
in the code which the child process executes after the fork. It may be
useful to sleep only if a certain environment variable is set, or a certain
file exists, so that the delay need not occur when you don’t want to run
GDB on the child. While the child is sleeping, use the ps
program to get its process ID. Then tell GDB (a new invocation of GDB if
you are also debugging the parent process) to attach to the child process
(see attach
with Debugging
an already-running process). From that point on you can debug
the child process just like any other process to which you attached.