public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* g++ std::map initializing raises segmentation fault.
@ 2017-07-06 12:26 Masamichi Hosoda
  2017-07-07 12:51 ` Marco Atzeri
  2017-07-07 15:12 ` Ken Brown
  0 siblings, 2 replies; 11+ messages in thread
From: Masamichi Hosoda @ 2017-07-06 12:26 UTC (permalink / raw)
  To: cygwin

Hello,

On Cygwin 2.8.1 x86_64, I've found that g++ std:map initializing
may raise segmentation fault.
The binary compiled with cygwin-devel-2.8.0-1
does not raise segmentation fault
even if on Cygwin 2.8.1 x86_64 environments.

So I suspect cygwin-devel-2.8.1-1 is the cause.

Here's sample code for reproduce.

```
// foo.cc
// g++ -std=c++11 foo.cc

#include<iostream>
#include<map>

std::map<int, int> m
{
  { 1, 1},
  { 2, 2}
};

int main ()
{
  std::cout << "Hello World!" << std::endl;
}
```

I've reproduced it on both Windows 7 64 bit and Windows 10 64 bit.

```
$ ./a
Segmentation fault (core dumped)

$
```

Here's my environment.

```
$ uname -a
CYGWIN_NT-10.0 Z87EXTREAM4 2.8.1(0.312/5/3) 2017-07-03 14:11 x86_64 Cygwin

$ g++ --version
g++ (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


$
```

Thanks

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 11+ messages in thread
* Re: g++ std::map initializing raises segmentation fault.
@ 2017-07-07 12:09 Ivan Gagis
  0 siblings, 0 replies; 11+ messages in thread
From: Ivan Gagis @ 2017-07-07 12:09 UTC (permalink / raw)
  To: The Cygwin Mailing List

Hi,

I'm having the same problem after updating to latest cygwin packages.
It seems quite important problem, are there any plans to fix it?

Trying to debug the test program from Masamichi Hosoda it can be seen
that crash occurs in std::map implementation, see stacktrace below. I
wonder if there was any update to STL recently in cygwin?


Program received signal SIGSEGV, Segmentation fault.
0x0000000100401bf4 in std::less<int>::operator()(int const&, int
const&) const ()
(gdb) bt
#0  0x0000000100401bf4 in std::less<int>::operator()(int const&, int
const&) const ()
#1  0x00000001004028dd in std::_Rb_tree<int, std::pair<int const,
int>, std::_Select1st<std::pair<int const, int> >, std::less<int>,
std::allocator<std::pair<int const, int> >
>::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator<std::pair<int
const, int> >, int const&) ()
#2  0x0000000100402685 in std::_Rb_tree_iterator<std::pair<int const,
int> > std::_Rb_tree<int, std::pair<int const, int>,
std::_Select1st<std::pair<int const, int> >, std::less<int>,
std::allocator<std::pair<int const, int> >
>::_M_insert_unique_<std::pair<int const, int> const&,
std::_Rb_tree<int, std::pair<int const, int>,
std::_Select1st<std::pair<int const, int> >, std::less<int>,
std::allocator<std::pair<int const, int> >
>::_Alloc_node>(std::_Rb_tree_const_iterator<std::pair<int const, int>
>, std::pair<int const, int> const&, std::_Rb_tree<int, std::pair<int
const, int>, std::_Select1st<std::pair<int const, int> >,
std::less<int>, std::allocator<std::pair<int const, int> >
>::_Alloc_node&) ()
#3  0x0000000100402579 in void std::_Rb_tree<int, std::pair<int const,
int>, std::_Select1st<std::pair<int const, int> >, std::less<int>,
std::allocator<std::pair<int const, int> >
>::_M_insert_unique<std::pair<int const, int> const*>(std::pair<int
const, int> const*, std::pair<int const, int> const*) ()
#4  0x0000000100401fec in std::map<int, int, std::less<int>,
std::allocator<std::pair<int const, int> >
>::map(std::initializer_list<std::pair<int const, int> >,
std::less<int> const&, std::allocator<std::pair<int const, int> >
const&) ()
#5  0x00000001004011a8 in __static_initialization_and_destruction_0(int, int) ()
#6  0x000000010040120a in _GLOBAL__sub_I_m ()
#7  0x0000000180045ef5 in do_global_ctors (force=0,
in_pfunc=0x100402ec0 <___CTOR_LIST__>) at
/usr/src/debug/cygwin-2.8.1-1/winsup/cygwin/dcrt0.cc:77
#8  __main () at /usr/src/debug/cygwin-2.8.1-1/winsup/cygwin/dcrt0.cc:1128
#9  0x00000001004010ed in main ()

Br,
Ivan

>
> From: Masamichi Hosoda <trueroad at trueroad dot jp>
> To: cygwin at cygwin dot com
> Date: Thu, 06 Jul 2017 21:26:22 +0900 (JST)
> Subject: g++ std::map initializing raises segmentation fault.
> Authentication-results: sourceware.org; auth=none
>
>
> Hello,
>
> On Cygwin 2.8.1 x86_64, I've found that g++ std:map initializing
> may raise segmentation fault.
> The binary compiled with cygwin-devel-2.8.0-1
> does not raise segmentation fault
> even if on Cygwin 2.8.1 x86_64 environments.
>
> So I suspect cygwin-devel-2.8.1-1 is the cause.
>
> Here's sample code for reproduce.
>
> ```
> // foo.cc
> // g++ -std=c++11 foo.cc
>
> #include<iostream>
> #include<map>
>
> std::map<int, int> m
> {
>   { 1, 1},
>   { 2, 2}
> };
>
> int main ()
> {
>   std::cout << "Hello World!" << std::endl;
> }
> ```
>
> I've reproduced it on both Windows 7 64 bit and Windows 10 64 bit.
>
> ```
> $ ./a
> Segmentation fault (core dumped)
>
> $
> ```
>
> Here's my environment.
>
> ```
> $ uname -a
> CYGWIN_NT-10.0 Z87EXTREAM4 2.8.1(0.312/5/3) 2017-07-03 14:11 x86_64 Cygwin
>
> $ g++ --version
> g++ (GCC) 5.4.0
> Copyright (C) 2015 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
>
> $
> ```
>
> Thanks

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-07-07 22:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-06 12:26 g++ std::map initializing raises segmentation fault Masamichi Hosoda
2017-07-07 12:51 ` Marco Atzeri
2017-07-07 13:35   ` Marco Atzeri
2017-07-07 14:09     ` Masamichi Hosoda
2017-07-07 14:21       ` Ivan Gagis
2017-07-07 14:28         ` Marco Atzeri
2017-07-07 16:01           ` Masamichi Hosoda
2017-07-07 15:12 ` Ken Brown
2017-07-07 20:43   ` Ken Brown
2017-07-07 22:32     ` Yaakov Selkowitz
2017-07-07 12:09 Ivan Gagis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).