Boost logo

Boost :

Subject: Re: [boost] Problem with debug Boost, Mac OS X and g++ 4.6
From: John Wiegley (johnw_at_[hidden])
Date: 2011-03-31 04:20:14


Christopher Jefferson <chris_at_[hidden]> writes:

> Did you build g++ with _GLIBCXX_FULLY_DYNAMIC_STRING? Or are you sure where
> it is picking up it's standard library from?
>
> My suspicion is that you are hitting the (which you seem to know about)
> _GLIBCXX_DEBUG and std::string bug in Mac OS X. Unfortunately I don't have a
> good answer on how to avoid it, I have tried various workarounds, but I
> always seem to end up getting bitten in the end.

Yes, I'm quite sure fully-dynamic-string is used everywhere. I have some
history with that particular issue, and its symptoms are not this.

I've narrowed down the problem to the following, in use_facet:

  31 = std::collate<char>::id._M_id()
  28 = std::locale()._M_impl->_M_facets_size

31 is an index into the facets array. 28 is the size of that array, as seen
through std::locale(). It would seem that the array std::collate<char> got
added to, and the array referenced by std::locale(), are not the same.

I've confirmed that both my executable, and the boost_regex dylib, both
reference the same libstdc++. I'll need to build g++ with debugging to trace
this any further into the locale code.

John


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk