Re: [Boost-bugs] [Boost C++ Libraries] #7666: Boost Thread SIGSEGV on join() when -D_GLIBCXX_DEBUG is used

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7666: Boost Thread SIGSEGV on join() when -D_GLIBCXX_DEBUG is used
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-09-20 07:52:29


#7666: Boost Thread SIGSEGV on join() when -D_GLIBCXX_DEBUG is used
-------------------------------------+-------------------------------------
  Reporter: Antonio Di Monaco | Owner: viboes
  <tony@…> | Status: assigned
      Type: Bugs | Component: thread
 Milestone: Boost 1.55.0 | Severity: Problem
   Version: Boost 1.52.0 | Keywords: thread SIGSEGV C++11
Resolution: | -D_GLIBCXX_DEBUG
-------------------------------------+-------------------------------------

Comment (by Antonio Di Monaco <tony@…>):

 I think that it's better to recap all the thing we have until now.

 I have a clean Windows environment (no other toolchains like MSVC are
 present).

 I use MingwBuilds, gcc 4.8.1, sjli, win32 thread.

 Everything is in one folder, C:\x32-481-win32-sjlj-r2, so boost is in
 include\boost, and libraries are in C:\x32-481-win32-sjlj-r2\lib.

 Anytime you asked me to apply a patch, I removed the whole dir
 include\boost and all libboost*.* present in C:\x32-481-win32-sjlj-r2\lib,
 extracted the boost-1.54.0 sources, applied the patch and rebuilt
 everything with the two command reported above. So I'm sure that I'm
 compiling and linking only against one version of boost (and I also check
 for the date of files before building).

 I compile and link my test with the following command line:

 c++ -o test.exe -std=c++11 -std=gnu++11 -D_GLIBCXX_DEBUG
 -D_GLIBCXX_DEBUG_PEDANTIC -g -O0 -fno-inline -g3
 -I"C:\x32-481-win32-sjlj-r2\include" test.cpp
 -L"C:\x32-481-win32-sjlj-r2\lib" -lboost_system-mt-d -lboost_thread-mt-d

 Until here, I don't have any doubt about the test environment I'm using.

 When test.exe is available, I run it with gdb, disabling hardware
 watchpoints, setting a breakpoint on
 boost::detail::thread_data_base::thread_data_base(), and run.

 When breakpoint triggers, notify variable seems fine, print command does
 not report any issue about its content.

 Then I add a watch on notify, and I start stepping. While stepping (it
 seems that something else is going to be constructed, but I can't
 understand what), notify watch triggers.

 Seems like a memory overrun.

 Anyway, I'll repeat the test again without -D_GLIBCXX_DEBUG
 -D_GLIBCXX_DEBUG_PEDANTIC ASAP.

 My offer to let you connect to my VPN is still valid, just contact me at
 tony --_at_-- becrux -- dot -- com, and I'll try to setup a GCC environment
 where you can perform your tests.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7666#comment:31>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC