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-18 11:06:08


#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 viboes):

 Replying to [comment:17 Antonio Di Monaco <tony@…>]:
> Maybe there's something here. I applied the patch, I started with a full
 run, just to be sure that SIGSEGV was still present, and then I printed
 out notify variable.
>
>

>
> Breakpoint 1, boost::detail::thread_data_base::~thread_data_base (
> this=0x243330, __in_chrg=<optimized out>)
> at libs\thread\src\win32\thread.cpp:40
> 40 thread_data_base::~thread_data_base()
> (gdb) s
> 42 for (notify_list_t::iterator i = notify.begin(), e =
 notify.end(
> );
> (gdb) p notify
> $1 = std::vector of length 0, capacity 0 = {Cannot access memory at
 address 0x0
> (gdb) p async_states_
> $2 = std::vector of length 0, capacity 0
> }}}

 Could you try to see when the access to address 0x0 is done?
 Could you do a step on notify.begin()?

> Seems that internal buffer of notify vector has been lost. Move
 operation somewhere??? (just guessing...)

 I don't think so. This class is not moved.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7666#comment:18>
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