Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2006-08-10 04:56:00


Alan Gray wrote:
> Hi John,
>
> I cannot reproduce the problem in a sample program (yet). The
> symptions appear to be stack corruption. In the function
>
> template <class charT>
> w32_regex_traits_char_layer<charT>::w32_regex_traits_char_layer(::boost::re_detail::lcid_type
> l)
> : w32_regex_traits_base<charT>(l)
> {
>
> line 187: w32_regex_traits.hpp
>
> the line
>
> std::string cat_name(w32_regex_traits<charT>::get_catalog_name());
>
> executes ok, looking at the debugger, _Mysize = 0 , _Myres = 15 which
> is expected. Then stepping into
>
> if(cat_name.size())
>
> inside the call, _mysize is now equal to some crazy number. The
> interesting point is that the debugger steps to the line

The only thing that springs to mind is a binary compartibitity issue: either
linking to the wrong regex lib build, multiple std lib's linked to your app,
or some obscure compiler option that's rendered the prebuilt lib's
incompatible with your app. As a quick test try adding the regex source
directly to your project and building with BOOST_REGEX_NO_LIB defined.
(Note this will make your app a lot "fatter" than it needs to be, but it's a
useful sanity check).

HTH, John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net