
Christopher Jefferson <chris@bubblescope.net> 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