This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: 64bit: segfault on program exit
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin-apps at cygwin dot com
- Date: Wed, 3 Apr 2013 16:22:02 +0200
- Subject: Re: 64bit: segfault on program exit
- References: <5159A39B dot 6020102 at gmail dot com> <20130402085923 dot GA7108 at calimero dot vinschen dot de> <515C2F00 dot 1000401 at gmail dot com>
- Reply-to: cygwin-apps at cygwin dot com
On Apr 3 15:30, marco atzeri wrote:
> On 4/2/2013 10:59 AM, Corinna Vinschen wrote:
> >Hi Marco,
> >
> >On Apr 1 17:11, marco atzeri wrote:
> >>I am building and testing openmpi-1.7.0rc9 on
> >> CYGWIN_NT-6.1 1.7.18(0.263/5/3) 2013-03-28 22:07 x86_64 Cygwin
> >>every looks fine except when all the processes on several cores
> >>end and should return to lunching program, something go wrong
> >>(of course on 32bit everyhing is OK)
> >>
> >>Attached stackdump.
> >
> >Not all 64 bit issues are Cygwin's fault. It's not clear in your
> >case, but it is pretty clear that this happens in a DLL other than
> >the Cygwin DLL. Look at the stack trace:
> >
> >>Stack trace:
> >>Frame Function Args
> >>0000022A630 00488F23380 (004CCD00004, 0060008C820, 00600082970, 0000022CCF0)
> >>00600012500 00488F1C48C (00000000000, 0000022AB10, 00180134344, 00000000000)
> >>0000022A900 0010040234B (0000022AB10, 00000000000, 00000000000, 0000022AB80)
> >>0000022AAC0 001004010F3 (0000022AB10, 00000000000, 00000000030, 30001000000FF00)
> >>0000022AB80 001800478A7 (00000000000, 00000000000, 00000000000, 00000000000)
> >>00000000000 0018004576B (00000000000, 00000000000, 00000000000, 00000000000)
> >>00000000000 0018004592F (00000000000, 00000000000, 00000000000, 00000000000)
> >>00000000000 00100407CB1 (00000000000, 00000000000, 00000000000, 00000000000)
> >>00000000000 00100401010 (00000000000, 00000000000, 00000000000, 00000000000)
> >>00000000000 0007710652D (00000000000, 00000000000, 00000000000, 00077189300)
> >>00000000000 0007733C521 (00000000000, 00000000000, 00000000000, 00077189300)
> >>End of stack trace
> >
> >The function addresses starting with 0x4 are distro DLLs. So the crash
> >occurs in a DLL at address 0x4:88F23380. The easiest way to find out
> >which DLL is the culprit, is this: Call `rebase -i /bin/*.dll' and see
> >which DLL covers the 0x4:88Fxxxxx addresses.
>
> it is one of the openmpi dll.
> >
> >The next addresses on the stack are applicaton addresses (0x1:0xxxxxxx)
> >The Cygwin DLL itself only shows up in the 6th frame (0x1:8xxxxxxx).
> >This is apparently the DLL entry point which ultimately calls the
> >application's main function.
>
> unfortunately GDB freezes before hitting breakpoints in code
> portion where the segfault is supposed to be.
> So something is fishy and GDB seems unable to catch it
The crash occurs in a forked process, I guess. Since you're building
the stuff yourself, maybe you can try some serious `printf' based
debugging?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat