This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: debugging a program which spawns multiple children


On Friday, February 16, 2018 12:34:19 PM Christian Groessler wrote:
> On 02/15/18 20:54, John Baldwin wrote:
> > On Monday, February 12, 2018 08:24:32 PM Simon Marchi wrote:
> >> On 2018-02-12 08:19 PM, Christian Groessler wrote:
> >>> Hi,
> >>>
> >>> I'm trying to debug a problem in FreeBSD's "dump" command. The dump
> >>> command creates 4 or 5 child processes,
> >>> and in my use case one of them gets a SIGSEGV.
> >>>
> >>> Is it possible to monitor all spawned processes simultaneously? I'm
> >>> currently using gdb version 7.12.1 from the FreeBSD ports.
> >>> I would have to problem to use a newer version of gdb and compile it
> >>> locally.
> >>>
> >>> regards,
> >>> chris
> >>>
> >> Hi Christian,
> >>
> >> If GDB for FreeBSD supports it, you can keep debugging the parent process as
> >> well as child processes by using "set detach-on-fork off".  John (in CC) may
> >> give more info about the support for multi process debugging with FreeBSD.
> > GDB 7.12.1 from ports should support fork following as Simon noted, but that
> > does only work on FreeBSD versions 9.1 and later.
> 
> 
> I have 7.12.1 already installed and am using FreeBSD 10.3. I haven't had
> time to try this gdb version it out yet...

As Simon suggested, 'set detach-on-fork off' should work.  Note that it won't
prevent processes from exiting while you are in the debugger unless you are
setting some kind of breakpoint in the exit path.  If you just want to stop in
a process when it hits a SIGSEGV and don't mind that other processes are still
running and/or exited I think detach-on-fork is all you need.

-- 
John Baldwin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]