Re: [Boost-bugs] [Boost C++ Libraries] #768: Crash on exit VC8.0

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #768: Crash on exit VC8.0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-04-28 09:24:53


#768: Crash on exit VC8.0
---------------------+------------------------------------------------------
  Reporter: nobody | Owner: johnmaddock
      Type: Bugs | Status: closed
 Milestone: | Component: regex
   Version: None | Severity: Showstopper
Resolution: None | Keywords:
---------------------+------------------------------------------------------
Changes (by johnmaddock):

  * severity: => Showstopper

Old description:

> {{{
> Hi
>
> I get a crash on exit of my application: when examining
> the stack as show below I conclude that the crash
> heppens in the cleanup of some static objects in the
> boost::regex i.e. the destructor of
> w32_regex_traits_implementation. This happens in
> release build on VC8.0 with 1.33.1.
> Was there a patch for this?
>
> Thankx for feedback,
>
> Kenny Knecht
> pietjeleugenaar_at_[hidden]
>

>
> kernel32.dll!7c812a5b()
> [Frames below may be incorrect and/or missing, no
> symbols loaded for kernel32.dll]
> kernel32.dll!7c812a5b()
> msvcp80.dll!std::char_traits<char>::_Copy_s(char *
> _First1=0x09fd8490, unsigned int _Size_in_bytes=31,
> const char * _First2=0x7c423995, unsigned int
> _Count=27) Line 576 C++
>
> msvcp80.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >::assign(const
> std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > & _Right={...}, unsigned int _Roff=1244628, unsigned
> int _Count=3765269347) Line 1021 + 0x2c bytes C++
> 00000001()
>
> GeneMathsXT.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >
> >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > const
> ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > > >,0> >::erase() + 0x73 bytes C++
>
> GeneMathsXT.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >
> >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > const
> ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > > >,0> >::erase() + 0xa4 bytes C++
>
> GeneMathsXT.exe!boost::re_detail::w32_regex_traits_implementation<char>::~w32_regex_traits_implementation<char>()
> + 0x52 bytes C++
>
> GeneMathsXT.exe!boost::detail::sp_counted_impl_p<boost::re_detail::w32_regex_traits_implementation<char>
> >::dispose() + 0xf bytes C++
>
> GeneMathsXT.exe!std::list<std::pair<boost::shared_ptr<boost::re_detail::w32_regex_traits_implementation<char>
> >,unsigned long const
> *>,std::allocator<std::pair<boost::shared_ptr<boost::re_detail::w32_regex_traits_implementation<char>
> >,unsigned long const *> > >::clear() + 0x3e bytes C++
> GeneMathsXT.exe!boost::object_cache<unsigned
> long,boost::re_detail::w32_regex_traits_implementation<char>
> >::data::~data() + 0x6b bytes C++
> > msvcr80.dll!doexit(int code=0, int quick=0, int
> retcaller=0) Line 553 C
> msvcr80.dll!exit(int code=0) Line 398 + 0xd bytes C
> GeneMathsXT.exe!__tmainCRTStartup() Line 549 C
> kernel32.dll!7c816fd7()
>
> }}}

New description:

 {{{
 Hi

 I get a crash on exit of my application: when examining
 the stack as show below I conclude that the crash
 heppens in the cleanup of some static objects in the
 boost::regex i.e. the destructor of
 w32_regex_traits_implementation. This happens in
 release build on VC8.0 with 1.33.1.
 Was there a patch for this?

 Thankx for feedback,

 Kenny Knecht
 pietjeleugenaar_at_[hidden]



         kernel32.dll!7c812a5b()
         [Frames below may be incorrect and/or missing, no
 symbols loaded for kernel32.dll]
         kernel32.dll!7c812a5b()
         msvcp80.dll!std::char_traits<char>::_Copy_s(char *
 _First1=0x09fd8490, unsigned int _Size_in_bytes=31,
 const char * _First2=0x7c423995, unsigned int
 _Count=27) Line 576 C++

 msvcp80.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char>
>::assign(const
 std::basic_string<char,std::char_traits<char>,std::allocator<char>
> & _Right={...}, unsigned int _Roff=1244628, unsigned
 int _Count=3765269347) Line 1021 + 0x2c bytes C++
         00000001()

 GeneMathsXT.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>
>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const
 ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > >,0> >::erase() + 0x73 bytes C++

 GeneMathsXT.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>
>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const
 ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > >,0> >::erase() + 0xa4 bytes C++

 GeneMathsXT.exe!boost::re_detail::w32_regex_traits_implementation<char>::~w32_regex_traits_implementation<char>()
  + 0x52 bytes C++

 GeneMathsXT.exe!boost::detail::sp_counted_impl_p<boost::re_detail::w32_regex_traits_implementation<char>
>::dispose() + 0xf bytes C++

 GeneMathsXT.exe!std::list<std::pair<boost::shared_ptr<boost::re_detail::w32_regex_traits_implementation<char>
>,unsigned long const
 *>,std::allocator<std::pair<boost::shared_ptr<boost::re_detail::w32_regex_traits_implementation<char>
>,unsigned long const *> > >::clear() + 0x3e bytes C++
         GeneMathsXT.exe!boost::object_cache<unsigned
 long,boost::re_detail::w32_regex_traits_implementation<char>
>::data::~data() + 0x6b bytes C++
> msvcr80.dll!doexit(int code=0, int quick=0, int
 retcaller=0) Line 553 C
         msvcr80.dll!exit(int code=0) Line 398 + 0xd bytes C
         GeneMathsXT.exe!__tmainCRTStartup() Line 549 C
         kernel32.dll!7c816fd7()

 }}}

Comment:

 Ahah! Yes mixing compiler versions would certainly do it, glad you got to
 the bottom of this!

 John.

--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/768#comment:6>
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:49:57 UTC