Anukool Lakhina wrote:
> Does gdb allow me to trace the actions of a specific child process that has
> been forked? If so, how?
The following is from the gdb Info file.
Debugging programs with multiple processes
==========================================
GDB has no special support for debugging programs which create
additional processes using the `fork' function. When a program forks,
GDB will continue to debug the parent process and the child process
will run unimpeded. If you have set a breakpoint in any code which the
child then executes, the child will get a `SIGTRAP' signal which
(unless it catches the signal) will cause it to terminate.
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 *Note
Attach::). From that point on you can debug the child process just
like any other process which you attached to.
--
Glynn Clements <[EMAIL PROTECTED]>