This is the mail archive of the 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: Refuse following the vfork parent if not letting the child run.

On Monday 08 June 2009 15:31:11, Daniel Jacobowitz wrote:
> On Mon, Jun 08, 2009 at 02:31:38PM +0100, Pedro Alves wrote:
> > A patched GDB shows this:
> > 
> >  (gdb) set detach-on-fork off
> >  (gdb) start
> >  Temporary breakpoint 1 at 0x4005c0: file ../../../src/gdb/testsuite/gdb.base/foll-vfork.c, line 12.
> >  Starting program: /home/pedro/gdb/sspaces/build/gdb/testsuite/gdb.base/foll-vfork
> > 
> >  Temporary breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.base/foll-vfork.c:12
> >  12        pid = vfork ();
> >  (gdb) n
> >  warning: Can not debug the parent of a vfork in the foreground if not letting
> >  the child run until it execs or exits, as it would deadlock the terminal.
> >  0x00007ffff789aee4 in vfork () from /lib/
> >  (gdb)      
> None of your explanation, the patch, or the example output tells me
> what GDB is doing instead :-) 

I suck at output messages and docs.  It's sort of in the patch :-).  Returning
1 from follow_fork makes the caller not carry on with resuming.

> IOW, I think a "warning" about the 
> situation here is strange; something has happened, and we don't say
> what.

> Is this actually a fork-following error, and we've stopped execution?

I guess you could call it an error.  We can't satisfy the users request,
so we kind of stopped execution --- in reality, we're refusing to
continue execution, as the inferior is stopped already.

Pedro Alves

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