Folks,
I'm running some serialization unit-tests which pass with flying colors
under 1.35.0 and earlier, however they seg-fault on exit when run through
1.36.0.
The error appears to deal with destruction of extended_type_info_typeid
objects, and *only* manifests itself when I load an archive through a
shared_ptr<T>. The load will appear to function properly, then on exit of
the application, <<Death>>. This occurs even if I remove BOOST_CLASS_EXPORT
&& BOOST_CLASS_TYPE_INFO as the shared_ptr is to the derived element, and
I'm not testing through a base.
My lastest guess is that I may be missing some #define
BOOST_SOME_MAGIC_NEW_OPTION
//////////////////////////// pseduo code: ////////////////////////////
BOOST_AUTO_TEST_CASE( MyTestClass_Serialization )
{
boost::shared_ptr<MyTestClass> outtie ( new MyTestClass() );
boost::shared_ptr<MyTestClass> innie;
std::ofstream os( "MyTestClass_Serialization.xml", std::ios_base::out );
my_pack< MyTestClass >( os, outtie );
os.close();
std::ifstream is( "MyTestClass_Serialization.xml", std::ios_base::in );
my_unpack< MyTestClass >( is, innie );
is.close();
BOOST_CHECK_NO_THROW();
}
//////////////////////////// ddd output: ////////////////////////////
*** No errors detected
[New Thread 0xb73e26c0 (LWP 4715)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb73e26c0 (LWP 4715)]
0xb76bb56b in std::_Rb_tree_rebalance_for_erase () from
/usr/lib/libstdc++.so.6
(gdb) bt
#0 0xb76bb56b in std::_Rb_tree_rebalance_for_erase () from
/usr/lib/libstdc++.so.6
#1 0xb7a38221 in
std::_Rb_tree