Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Sep 1999 20:19:32 -0400 (EDT)
From:      Zhihui Zhang <zzhang@cs.binghamton.edu>
To:        Kip Macy <kip@lyris.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   How to follow child process in gdb
Message-ID:  <Pine.GSO.3.96.990908200701.23944A-100000@sol.cs.binghamton.edu>
In-Reply-To: <Pine.SOL.4.05.9909081438090.28873-100000@luna>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 8 Sep 1999, Kip Macy wrote:

> You need to detach from your current process and attach to the spawned
> process. It might make it easier to attach in a timely fashion if you put
> a 3 second sleep in right after the fork. This would all be easiest using
> something like DDD where DDD will tell you what other processes are
> running with the same name, and allow you to attach to them through the
> GUI.

In dbx on a Sun workstation, all I need to do to follow a child process
after fork() is to use the following command in advance:

(dbx)dbxenv follow_fork_mode child

Your response suggests that I can not achieve the same result simply by
using (I am using gdb 4.18):

(gdb)set follow-fork-mode child

I have to use attach and dettach to do so.  Does that mean I have to
display the pid of the new process in order to follow it.  And I have to
modify the child process so that it can wait until I can attach to it.
That will not be as easy.

-Zhihui


> 
> 	
> 
> On Wed, 8 Sep 1999, Zhihui Zhang wrote:
> 
> > 
> > I am using gdb 4.18 on FreeBSD-current.  The program being debugged
> > consists of two small files: test1.c and test2.c.  The main() in test1.c
> > has a call to fork() and for the child process case, it will call a
> > routine, say test(), in test2.c. 
> > 
> > I use "set follow-fork-mode child", "break fork", "step" command trying to
> > access the source in test2.c without success.  The program is compiled
> > with "cc -g test1.c test2.c" and I run gdb with "gdb a.out".
> > 
> > If there is no fork(), a call from test1.c to a routine in test2.c will
> > bring up the source of test2.c if I step that routine.  Why it does not
> > work with fork()?  Am I missing something?
> > 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.96.990908200701.23944A-100000>