This is the mail archive of the cygwin-apps mailing list for the Cygwin 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: 64bit: segfault on program exit


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.

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.

Did you see my mail describing the memory layout on the
cygwin-developers list?  This is a bit helpful I hope:

  http://cygwin.com/ml/cygwin-developers/2013-02/msg00027.html


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat


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