Geoffrey,

If I understand correctly your problem, I think it is a gdb issue. You should 
inform gdb that after the fork call instead of following the parent you expect 
to follow the child.

set follow-fork-mode child (should do the trick).

For more info: http://sourceware.org/gdb/onlinedocs/gdb/Forks.html

  George.

On Feb 22, 2013, at 19:55 , Geoffrey Irving <irv...@naml.us> wrote:

> No luck with gdb 7.5.1.  I can get it to run, but it hits an internal
> error and bails out.  Thus, I'm stuck with Apple's 6.3.50.  I suppose
> I'll try to restructure the app so that I don't have to spawn the mpi
> process with a fork from the other one.
> 
> Geoffrey
> 
> On Thu, Feb 21, 2013 at 4:38 PM, Geoffrey Irving <irv...@naml.us> wrote:
>> No, I don't really have any idea what it's doing.  You have to add
>> manual sleeps and attach another instance of gdb if you want to step
>> through the child, since I also can't get follow-fork-mode child to
>> work.  I only tried that once, and it segfaulted accessing the zero
>> pointer destroying the stack in the process.  I haven't done manual
>> stepping or printf searches, so I don't know where in MPI_Init it
>> breaks.
>> 
>> I'm trying to install gdb 7.5.1 now (a nontrivial process on Mac,
>> unfortunately) to see if that fixes it.
>> 
>> Geoffrey
>> 
>> On Thu, Feb 21, 2013 at 4:28 PM, Ralph Castain <r...@open-mpi.org> wrote:
>>> Hmmm...how about that? Yeah, it doesn't work with the devel trunk either - 
>>> I'd missed that point.
>>> 
>>> No idea why, I'm afraid - never tried it before. Are you sure it "crashes"? 
>>> I'm still getting a child status of "0", but no message output. My guess is 
>>> that the I/O is being lost for some reason.
>>> 
>>> On Feb 21, 2013, at 4:09 PM, Geoffrey Irving <irv...@naml.us> wrote:
>>> 
>>>> Actually, I don't see it printing "We're an MPI program!" under gdb,
>>>> which means it isn't working.
>>>> 
>>>> Geoffrey
>>>> 
>>>> On Thu, Feb 21, 2013 at 4:07 PM, Ralph Castain <r...@open-mpi.org> wrote:
>>>>> Hmmm...works with 1.6.4 for me on Mac 10.8.2:
>>>>> 
>>>>> Ralphs-iMac:v1.6 rhc$ ./fork-bug
>>>>> We're an MPI program!
>>>>> child status = 0
>>>>> Ralphs-iMac:v1.6 rhc$ gdb ./fork-bug
>>>>> GNU gdb 6.3.50-20050815 (Apple version gdb-1820) (Sat Jun 16 02:40:11 UTC 
>>>>> 2012)
>>>>> Copyright 2004 Free Software Foundation, Inc.
>>>>> GDB is free software, covered by the GNU General Public License, and you 
>>>>> are
>>>>> welcome to change it and/or distribute copies of it under certain 
>>>>> conditions.
>>>>> Type "show copying" to see the conditions.
>>>>> There is absolutely no warranty for GDB.  Type "show warranty" for 
>>>>> details.
>>>>> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for 
>>>>> shared libraries ... done
>>>>> 
>>>>> (gdb) r
>>>>> Starting program: /Volumes/RHCHD/rhc/openmpi/v1.6/fork-bug
>>>>> Reading symbols for shared libraries ++............................. done
>>>>> child status = 0
>>>>> 
>>>>> Program exited normally.
>>>>> (gdb)
>>>>> 
>>>>> Afraid I have no idea why you might be hitting the problem, though...
>>>>> 
>>>>> 
>>>>> On Feb 21, 2013, at 3:50 PM, Geoffrey Irving <irv...@naml.us> wrote:
>>>>> 
>>>>>> The singleton fork/exec itself is fine, since normal MPI programs work
>>>>>> under gdb (e.g., fork-bug.c without the fork).  gdb is has
>>>>>> follow-fork-mode set to parent, so it's odd that gdb is looking at the
>>>>>> child process's trickery at all.
>>>>>> 
>>>>>> I've confirmed that it's still broken under 1.6.4, unfortunately.
>>>>>> 
>>>>>> Geoffrey
>>>>>> 
>>>>>> On Thu, Feb 21, 2013 at 3:36 PM, Ralph Castain <r...@open-mpi.org> wrote:
>>>>>>> Singletons fork/exec a daemon to support them - my guess is that gdb 
>>>>>>> may not like it on your machine?
>>>>>>> 
>>>>>>> FWIW - it runs fine for me using the developer's trunk. You might try 
>>>>>>> with 1.6.4 in case it's a bug in 1.6.0
>>>>>>> 
>>>>>>> 
>>>>>>> On Feb 21, 2013, at 3:18 PM, Geoffrey Irving <irv...@naml.us> wrote:
>>>>>>> 
>>>>>>>> The attached program illustrates the problem.  It forks, and the child
>>>>>>>> calls MPI_Init.  This works fine unless I'm inside gdb.  Inside gdb,
>>>>>>>> MPI_Init silently crashes.
>>>>>>>> 
>>>>>>>> I'm using OpenMPI 1.6.0 on Mac 10.8.2.  I'm running the program
>>>>>>>> directly, not through mpirun.
>>>>>>>> 
>>>>>>>> Any ideas what might be wrong?
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Geoffrey
>>>>>>>> 
>>>>>>>> cone:scratch% /usr/local/bin/mpicc -o fork-bug fork-bug.c
>>>>>>>> cone:scratch% ./fork-bug
>>>>>>>> We're an MPI program!
>>>>>>>> child status = 0
>>>>>>>> cone:scratch% gdb ./fork-bug
>>>>>>>> gdb ./fork-bug
>>>>>>>> GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Thu Nov 15 10:42:43 
>>>>>>>> UTC 2012)
>>>>>>>> Copyright 2004 Free Software Foundation, Inc.
>>>>>>>> GDB is free software, covered by the GNU General Public License, and 
>>>>>>>> you are
>>>>>>>> welcome to change it and/or distribute copies of it under certain 
>>>>>>>> conditions.
>>>>>>>> Type "show copying" to see the conditions.
>>>>>>>> There is absolutely no warranty for GDB.  Type "show warranty" for 
>>>>>>>> details.
>>>>>>>> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for
>>>>>>>> shared libraries ... done
>>>>>>>> 
>>>>>>>> (gdb) run
>>>>>>>> Reading symbols for shared libraries ++............................. 
>>>>>>>> done
>>>>>>>> child status = 5
>>>>>>>> 
>>>>>>>> Program exited normally.
>>>>>>>> (gdb) cone:scratch%
>>>>>>>> <fork-bug.c>_______________________________________________
>>>>>>>> users mailing list
>>>>>>>> us...@open-mpi.org
>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> users mailing list
>>>>>>> us...@open-mpi.org
>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> us...@open-mpi.org
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> us...@open-mpi.org
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> _______________________________________________
>>>> users mailing list
>>>> us...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> 
>>> 
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to