More info: it works fine if I exec after the fork (or equivalently,
run anything via system).  This provides a sufficient workaround at
least for me, so it's probably not worth complaining further that a
proprietarily modified decade old version of gdb doesn't work. :)

Thanks,
Geoffrey

On Fri, Feb 22, 2013 at 11:18 AM, George Bosilca <bosi...@icl.utk.edu> wrote:
> 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
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to