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