boost::serialization throwing bad_alloc

Hi all, I am suffering from boost serialization throwing a bad_alloc exception at a very low-level that I've been unable to explain or workaround. I first hit the problem on 1_33 but upgrading to 1_34 and then 1_34_1 had no effect. My code is within one DLL and I'm loading boost dynamically through the DLLs. This is a real-showstopper for me - any suggestions at all gratefully received. Thanks, Matt. The disassembly from save_access::save_primitive: ar.save(t); 488FEC20 mov esi,esp 488FEC22 mov eax,dword ptr [t] 488FEC25 push eax 488FEC26 mov ecx,dword ptr [ar] 488FEC29 add ecx,8 488FEC2C call dword ptr [__imp_boost::archive::basic_binary_oprimitive<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save (48EBA254h)] 488FEC32 cmp esi,esp 488FEC34 call @ILT+121865(__RTC_CheckEsp) (487A9C0Eh) } The debugger cursor points to the cmp line so I believe the exception is being thrown by the __imp_boost call. For what it's worth esi = 1301555968 and esp = 1301555820 and t is an innocuous looking string of size 5135. My top level calling code: std::ostringstream os; boost::archive::binary_oarchive oa( os ); oa << BOOST_SERIALIZATION_NVP( pMyClass ); where pMyClass has been passed as: const myClass * pMyClass Both my top-level class and all intermediate ones have the same standard serialization structure: class myClass : public boost::noncopyable { ... private: myClass(){}; friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & BOOST_SERIALIZATION_NVP( ... ) ... } } Full stack dump: kernel32.dll!7c812a5b() kernel32.dll!7c812a5b() msvcr71d.dll!47ce9504() msvcr71d.dll!47ce94fb() msvcr71d.dll!47cebed9() msvcr71d.dll!47d06fa9() msvcp71d.dll!47dd8946() msvcp71d.dll!47ddd05f() msvcp71d.dll!47d8a97c() msvcp71d.dll!47d890b2() msvcp71d.dll!47db4b55() msvcp71d.dll!47d8accc() msvcp71d.dll!47d994ca() msvcp71d.dll!47d994ca() boost_serialization-vc71-mt-gd-1_34_1.dll!47f4ae67() msvcp71d.dll!47d870bf() boost_serialization-vc71-mt-gd-1_34_1.dll!47f4abf1() > myDLL.dll!boost::archive::save_access::save_primitive<boost::archive::bi nary_oarchive,std::basic_string<char,std::char_traits<char>,std::allocat or<char> > >(boost::archive::binary_oarchive & ar={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t={...}) Line 91 + 0x12 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::basic_string<char,std::char_traits<char>,std::alloc ator<char> > >::save_primitive::invoke(boost::archive::binary_oarchive & ar={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t={...}) Line 244 + 0xd C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::basic_string<char,std::char_traits<char>,std::alloc ator<char> > >::invoke(boost::archive::binary_oarchive & ar={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,std::basi c_string<char,std::char_traits<char>,std::allocator<char> > >(boost::archive::binary_oarchive & ar={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<std::basic_string<char,std::char_traits<char>,st d::allocator<char> > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<std::basic_string<char,std::char_tra its<char>,std::allocator<char> > const >::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<std::basic_string<char,std::char_t raits<char>,std::allocator<char> > const > const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > const > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<std::basic_string<char,std::char_traits<c har>,std::allocator<char> > const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<std::basic_string<char,std::char_tra its<char>,std::allocator<char> > const >::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<std::basic_string<char,std::char_tra its<char>,std::allocator<char> > const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<std::basic_string<char,std::char_traits<char >,std::allocator<char> > const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<std::basic_string<char,std::char_traits< char>,std::allocator<char> > const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::basic_string<char,std::ch ar_traits<char>,std::allocator<char> > const > >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::basic_string<char,std::ch ar_traits<char>,std::allocator<char> > const > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > const > >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<std::basic_string<ch ar,std::char_traits<char>,std::allocator<char> > const > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<std::basic_string<char ,std::char_traits<char>,std::allocator<char> > const > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<std::basic_string<char,std::c har_traits<char>,std::allocator<char> > const > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<std::basic_string<ch ar,std::char_traits<char>,std::allocator<char> > const > const >() Line 80 C++ myDLL.dll!boost::serialization::stl::save_collection<boost::archive::bin ary_oarchive,std::vector<std::basic_string<char,std::char_traits<char>,s td::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & s={...}) Line 59 C++ myDLL.dll!boost::serialization::save<boost::archive::binary_oarchive,std ::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > >(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}, const unsigned int __formal=0) Line 41 + 0xd C++ myDLL.dll!boost::serialization::free_saver<boost::archive::binary_oarchi ve,std::vector<std::basic_string<char,std::char_traits<char>,std::alloca tor<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}, const unsigned int file_version=0) Line 45 + 0x18 C++ myDLL.dll!boost::serialization::split_free<boost::archive::binary_oarchi ve,std::vector<std::basic_string<char,std::char_traits<char>,std::alloca tor<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >(boost::archive::binary_oarchive & ar={...}, std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}, const unsigned int file_version=0) Line 74 + 0x11 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > >(boost::archive::binary_oarchive & ar={...}, std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}, const unsigned int file_version=0) Line 68 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,std::vector<std::basic_string<char,std::char_traits<char>,std::all ocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >(boost::archive::binary_oarchive & ar={...}, std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::oserializer<boost::archive::binary_oar chive,std::vector<std::basic_string<char,std::char_traits<char>,std::all ocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::save_object_data(boost::archive::detail::basic_oarchive & ar={...}, const void * x=0x4da09810) Line 151 + 0x2b C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a2bb() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa3e() myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::vector<std::basic_string<char,std::char_traits<char >,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::save_standard::invoke(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}) Line 263 + 0x15 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::vector<std::basic_string<char,std::char_traits<char >,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,std::vect or<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >(boost::archive::binary_oarchive & ar={...}, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator <char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<std::vector<std::basic_string<char,std::char_tra its<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<std::vector<std::basic_string<char,std::char_traits<cha r>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<std::vector<std::basic_string<char,s td::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<std::vector<std::basic_string<char ,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<std::vector<std::basic_string<cha r,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<std::vector<std::basic_string<char,std::c har_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<std::vector<std::basic_string<char,s td::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > >::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<std::vector<std::basic_string<char,s td::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<std::vector<std::basic_string<char,std::char _traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<std::vector<std::basic_string<char,std:: char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::vector<std::basic_string< char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::vector<std::basic_string< char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<std::vector<std::basic_string<char,std::char_traits<cha r>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::vector<std::basic_string<char,std::char_t raits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<std::vector<std::bas ic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<std::vector<std::basic _string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<std::vector<std::basic_string <char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<std::vector<std::bas ic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >() Line 80 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator&<boost::serialization::nvp<std::vector<std::basi c_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > > > > const >() Line 91 C++ myDLL.dll!myNS::myComponentClass::serialize<boost::archive::binary_oarch ive>() Line 90 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,myNS::myFunc>(boost::archive::binary_oarchive & ar={...}, myNS::myFunc & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,myNS::myFunc>(boost::archive::binary_oarchive & ar={...}, myNS::myFunc & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,myNS::myFunc>(boost::archive::binary_oarchive & ar={...}, myNS::myFunc & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::oserializer<boost::archive::binary_oar chive,myNS::myFunc>::save_object_data(boost::archive::detail::basic_oarc hive & ar={...}, const void * x=0x4da097d8) Line 151 + 0x2b C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a1de() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa3e() myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,myNS::myFunc>::save_standard::invoke(boost::archive::bin ary_oarchive & ar={...}, const myNS::myFunc & t={...}) Line 263 + 0x15 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,myNS::myFunc>::invoke(boost::archive::binary_oarchive & ar={...}, const myNS::myFunc & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,myNS::myF unc>(boost::archive::binary_oarchive & ar={...}, const myNS::myFunc & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<myNS::myFunc const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<myNS::myFunc const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<myNS::myFunc const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<myNS::myFunc const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<myNS::myFunc>::save<boost::archive:: binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<myNS::myFunc> const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<myNS::myFunc> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<myNS::myFunc> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<myNS::myFunc>::serialize<boost::arch ive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<myNS::myFunc> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<myNS::myFunc> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<myNS::myFunc> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc> & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myFunc> >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc> & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myFunc> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc> & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<myNS::myFunc> >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc> & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<myNS::myFunc> const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<myNS::myFunc> const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<myNS::myFunc> const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<myNS::myFunc> const >() Line 80 C++ myDLL.dll!boost::archive::detail::pointer_oserializer<myNS::myFunc,boost ::archive::binary_oarchive>::save_object_ptr(boost::archive::detail::bas ic_oarchive & ar={...}, const void * x=0x4da097d8) Line 216 C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a868() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa6e() myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myFunc *>::polymorphic<myNS::myFunc>::save(boost::archive::binary_oarchive & ar={...}, const myNS::myFunc & t={...}, const boost::archive::detail::basic_pointer_oserializer * bpos_ptr=0x48eaf914) Line 401 + 0x13 C++ myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myFunc *>::save<myNS::myFunc>(boost::archive::binary_oarchive & ar={...}, const myNS::myFunc & t={...}, const boost::archive::detail::basic_pointer_oserializer * bpos_ptr=0x48eaf914) Line 438 + 0x11 C++ myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myFunc *>::invoke(boost::archive::binary_oarchive & ar={...}, myNS::myFunc * const t=0x4da097d8) Line 466 + 0x11 C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,myNS::myF unc *>(boost::archive::binary_oarchive & ar={...}, myNS::myFunc * const & t=0x4da097d8) Line 535 + 0xf C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<myNS::myFunc * const>() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<myNS::myFunc * const>() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<myNS::myFunc * const>() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<myNS::myFunc * const>() Line 80 C++ myDLL.dll!boost::serialization::nvp<myNS::myFunc *>::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<myNS::myFunc *> const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<myNS::myFunc *> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<myNS::myFunc *>::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myFunc *> >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc *> & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myFunc *> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc *> & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myFunc *> & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<myNS::myFunc *> const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<myNS::myFunc *> const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<myNS::myFunc *> const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<myNS::myFunc *> const >() Line 80 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator&<boost::serialization::nvp<myNS::myFunc *> const >() Line 91 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,myNS::Date const ,myNS::myFunc *>(boost::archive::binary_oarchive & ar={...}, std::pair<myNS::Date const ,myNS::myFunc *> & p={...}, const unsigned int __formal=0) Line 42 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,std::pair<myNS::Date const ,myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, std::pair<myNS::Date const ,myNS::myFunc *> & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::oserializer<boost::archive::binary_oar chive,std::pair<myNS::Date const ,myNS::myFunc *> >::save_object_data(boost::archive::detail::basic_oarchive & ar={...}, const void * x=0x4da28df4) Line 151 + 0x2b C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a2bb() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa3e() myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::pair<myNS::Date const ,myNS::myFunc *> >::save_standard::invoke(boost::archive::binary_oarchive & ar={...}, const std::pair<myNS::Date const ,myNS::myFunc *> & t={...}) Line 263 + 0x15 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::pair<myNS::Date const ,myNS::myFunc *> >::invoke(boost::archive::binary_oarchive & ar={...}, const std::pair<myNS::Date const ,myNS::myFunc *> & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,std::pair <myNS::Date const ,myNS::myFunc *> >(boost::archive::binary_oarchive & ar={...}, const std::pair<myNS::Date const ,myNS::myFunc *> & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<std::pair<myNS::Date const ,myNS::myFunc *> const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<std::pair<myNS::Date const ,myNS::myFunc *> const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<std::pair<myNS::Date const ,myNS::myFunc *> const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<std::pair<myNS::Date const ,myNS::myFunc *> const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const >::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const >::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<std::pair<myNS::Date const ,myNS::myFunc *> const > const >() Line 80 C++ myDLL.dll!boost::serialization::stl::save_collection<boost::archive::bin ary_oarchive,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & s={...}) Line 59 C++ myDLL.dll!boost::serialization::save<boost::archive::binary_oarchive,myN S::myFunc *,myNS::Date,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > >(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}, const unsigned int __formal=0) Line 41 + 0xd C++ myDLL.dll!boost::serialization::free_saver<boost::archive::binary_oarchi ve,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::invoke(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}, const unsigned int file_version=0) Line 45 + 0x18 C++ myDLL.dll!boost::serialization::split_free<boost::archive::binary_oarchi ve,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >(boost::archive::binary_oarchive & ar={...}, std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}, const unsigned int file_version=0) Line 74 + 0x11 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,myNS::myFunc *,myNS::Date,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > >(boost::archive::binary_oarchive & ar={...}, std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}, const unsigned int file_version=0) Line 70 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >(boost::archive::binary_oarchive & ar={...}, std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::oserializer<boost::archive::binary_oar chive,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::save_object_data(boost::archive::detail::basic_oarchive & ar={...}, const void * x=0x4d808784) Line 151 + 0x2b C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a2bb() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa3e() myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::save_standard::invoke(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}) Line 263 + 0x15 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::invoke(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,std::map< myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >(boost::archive::binary_oarchive & ar={...}, const std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > >::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFu nc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<std::map<myNS::Date,myNS::myFu nc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<std::map<myNS::Date,myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<std::map<myNS::Date, myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<std::map<myNS::Date,my NS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<std::map<myNS::Date,myNS::myF unc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<std::map<myNS::Date, myNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >() Line 80 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator&<boost::serialization::nvp<std::map<myNS::Date,m yNS::myFunc *,std::less<myNS::Date>,std::allocator<std::pair<myNS::Date const ,myNS::myFunc *> > > > const >() Line 91 C++ myDLL.dll!myNS::myClass::serialize<boost::archive::binary_oarchive>() Line 68 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,myNS::myClass>(boost::archive::binary_oarchive & ar={...}, myNS::myClass & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,myNS::myClass>(boost::archive::binary_oarchive & ar={...}, myNS::myClass & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,myNS::myClass>(boost::archive::binary_oarchive & ar={...}, myNS::myClass & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::oserializer<boost::archive::binary_oar chive,myNS::myClass>::save_object_data(boost::archive::detail::basic_oar chive & ar={...}, const void * x=0x4d808780) Line 151 + 0x2b C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a1de() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa3e() myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,myNS::myClass>::save_standard::invoke(boost::archive::bi nary_oarchive & ar={...}, const myNS::myClass & t={...}) Line 263 + 0x15 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,myNS::myClass>::invoke(boost::archive::binary_oarchive & ar={...}, const myNS::myClass & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,myNS::myC lass>(boost::archive::binary_oarchive & ar={...}, const myNS::myClass & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<myNS::myClass const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<myNS::myClass const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<myNS::myClass const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<myNS::myClass const >() Line 80 C++ myDLL.dll!boost::serialization::nvp<myNS::myClass>::save<boost::archive: :binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<myNS::myClass> const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<myNS::myClass> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<myNS::myClass> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<myNS::myClass>::serialize<boost::arc hive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<myNS::myClass> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<myNS::myClass> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<myNS::myClass> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass> & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myClass> >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass> & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myClass> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass> & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<myNS::myClass> >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass> & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<myNS::myClass> const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<myNS::myClass> const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<myNS::myClass> const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<myNS::myClass> const >() Line 80 C++ myDLL.dll!boost::archive::detail::pointer_oserializer<myNS::myClass,boos t::archive::binary_oarchive>::save_object_ptr(boost::archive::detail::ba sic_oarchive & ar={...}, const void * x=0x4d808780) Line 216 C++ boost_serialization-vc71-mt-gd-1_34_1.dll!47f3a868() boost_serialization-vc71-mt-gd-1_34_1.dll!47f3aa6e() myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myClass const *>::polymorphic<myNS::myClass>::save(boost::archive::binary_oarchive & ar={...}, const myNS::myClass & t={...}, const boost::archive::detail::basic_pointer_oserializer * bpos_ptr=0x48eaf3c0) Line 401 + 0x13 C++ myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myClass const *>::save<myNS::myClass>(boost::archive::binary_oarchive & ar={...}, const myNS::myClass & t={...}, const boost::archive::detail::basic_pointer_oserializer * bpos_ptr=0x48eaf3c0) Line 438 + 0x11 C++ myDLL.dll!boost::archive::detail::save_pointer_type<boost::archive::bina ry_oarchive,myNS::myClass const *>::invoke(boost::archive::binary_oarchive & ar={...}, const myNS::myClass * const t=0x4d808780) Line 466 + 0x11 C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,myNS::myC lass const *>(boost::archive::binary_oarchive & ar={...}, const myNS::myClass * const & t=0x4d808780) Line 535 + 0xf C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<myNS::myClass const * const>() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<myNS::myClass const * const>() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<myNS::myClass const * const>() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<myNS::myClass const * const>() Line 80 C++ myDLL.dll!boost::serialization::nvp<myNS::myClass const *>::save<boost::archive::binary_oarchive>() Line 78 C++ myDLL.dll!boost::serialization::access::member_save<boost::archive::bina ry_oarchive,boost::serialization::nvp<myNS::myClass const *> const >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 94 C++ myDLL.dll!boost::serialization::detail::member_saver<boost::archive::bin ary_oarchive,boost::serialization::nvp<myNS::myClass const *> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 43 + 0x11 C++ myDLL.dll!boost::serialization::split_member<boost::archive::binary_oarc hive,boost::serialization::nvp<myNS::myClass const *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 69 + 0x11 C++ myDLL.dll!boost::serialization::nvp<myNS::myClass const *>::serialize<boost::archive::binary_oarchive>() Line 87 + 0x34 C++ myDLL.dll!boost::serialization::access::serialize<boost::archive::binary _oarchive,boost::serialization::nvp<myNS::myClass const *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 110 C++ myDLL.dll!boost::serialization::serialize<boost::archive::binary_oarchiv e,boost::serialization::nvp<myNS::myClass const *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 81 + 0x11 C++ myDLL.dll!boost::serialization::serialize_adl<boost::archive::binary_oar chive,boost::serialization::nvp<myNS::myClass const *> >(boost::archive::binary_oarchive & ar={...}, boost::serialization::nvp<myNS::myClass const *> & t={...}, const unsigned int file_version=0) Line 140 + 0x18 C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myClass const *> >::save_only::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass const *> & t={...}) Line 256 + 0xf C++ myDLL.dll!boost::archive::detail::save_non_pointer_type<boost::archive:: binary_oarchive,boost::serialization::nvp<myNS::myClass const *> >::invoke(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass const *> & t={...}) Line 321 + 0xd C++ myDLL.dll!boost::archive::save<boost::archive::binary_oarchive,boost::se rialization::nvp<myNS::myClass const *> >(boost::archive::binary_oarchive & ar={...}, const boost::serialization::nvp<myNS::myClass const *> & t={...}) Line 535 + 0xd C++ myDLL.dll!boost::archive::detail::common_oarchive<boost::archive::binary _oarchive>::save_override<boost::serialization::nvp<myNS::myClass const *> const >() Line 62 + 0x15 C++ myDLL.dll!boost::archive::basic_binary_oarchive<boost::archive::binary_o archive>::save_override<boost::serialization::nvp<myNS::myClass const *> const >() Line 66 C++ myDLL.dll!boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive,char,std::char_traits<char> >::save_override<boost::serialization::nvp<myNS::myClass const *> const >() Line 46 C++ myDLL.dll!boost::archive::detail::interface_oarchive<boost::archive::bin ary_oarchive>::operator<<<boost::serialization::nvp<myNS::myClass const *> const >(const boost::serialization::nvp<myNS::myClass const *> & t={...}) Line 80 C++ -- This e-mail is confidential and the information contained in it may be privileged. It should not be read, copied or used by anyone other than the intended recipient. If you have received it in error, please contact the sender immediately by telephoning +44 (0)20 7623 8000 or by return email, and delete the e-mail and do not disclose its contents to any person. We believe, but do not warrant, that this e-mail and any attachments are virus free, but you must take full responsibility for virus checking. Please refer to http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail disclaimer statement and monitoring policy. Dresdner Kleinwort is the trading name of the investment banking division of Dresdner Bank AG, and operates through Dresdner Bank AG, Dresdner Kleinwort Limited, Dresdner Kleinwort Securities Limited and their affiliated or associated companies. Dresdner Bank AG is a company incorporated in Germany with limited liability and registered in England (registered no. FC007638, place of business 30 Gresham Street, London EC2V 7PG), and is authorised by the German Federal Financial Supervisory Authority and by the Financial Services Authority ('FSA') and regulated by the FSA for the conduct of designated business in the UK. Dresdner Kleinwort Limited is a company incorporated in England (registered no. 551334, registered office 30 Gresham Street, London EC2V 7PG), and is authorised and regulated by the FSA. Dresdner Kleinwort Securities Limited is a company incorporated in England (registered no. 1767419, registered office 30 Gresham Street, London EC2V 7PG), and is authorised and regulated by the FSA.

Hi! Fletcher, Matthew (Information Technology) schrieb:
I am suffering from boost serialization throwing a bad_alloc exception at a very low-level that I've been unable to explain or workaround.
I seems strange, right. But have you been successful earlier? That is, is there a point where it started failing? I guess you had smaller programs before which worked. Does it work with less data? Does it work with increased stack size? Sure, a stack overflow should not result in a bad alloc, but just try if nothing else helps. Your stacktrace seems pretty large. Frank

Yes the stack trace seems incredibly deep for calling one line of boost code (over 200 depth). I was hoping someone might guess what is going wrong from the structure of the stack trace. I have looked through every frame but can't see anything unusual, but the very fact it is so deep feels wrong. The top-level object being serialized has some structure but is not particularly complicated. Yes it has worked in the past and works for small data sets now. However I did not write the original code and suspect there may be some subtlety which is leading the serializations to blow up in size and I can't find it. Even seemingly small examples give rise to serializations of several megabytes. The stack is of the order of 1Gb and cannot be easily increased but I suspect the stack/heap size just lets it get into such a deep mess before finally dying and the real problem is some conceptual mistake in how my class's serialization has been implemented. Matt -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Frank Birbacher Sent: 22 August 2007 14:18 To: boost-users@lists.boost.org Subject: Re: [Boost-users] boost::serialization throwing bad_alloc Hi! Fletcher, Matthew (Information Technology) schrieb:
I am suffering from boost serialization throwing a bad_alloc exception
at a very low-level that I've been unable to explain or workaround.
I seems strange, right. But have you been successful earlier? That is, is there a point where it started failing? I guess you had smaller programs before which worked. Does it work with less data? Does it work with increased stack size? Sure, a stack overflow should not result in a bad alloc, but just try if nothing else helps. Your stacktrace seems pretty large. Frank _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users -- This e-mail is confidential and the information contained in it may be privileged. It should not be read, copied or used by anyone other than the intended recipient. If you have received it in error, please contact the sender immediately by telephoning +44 (0)20 7623 8000 or by return email, and delete the e-mail and do not disclose its contents to any person. We believe, but do not warrant, that this e-mail and any attachments are virus free, but you must take full responsibility for virus checking. Please refer to http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail disclaimer statement and monitoring policy. Dresdner Kleinwort is the trading name of the investment banking division of Dresdner Bank AG, and operates through Dresdner Bank AG, Dresdner Kleinwort Limited, Dresdner Kleinwort Securities Limited and their affiliated or associated companies. Dresdner Bank AG is a company incorporated in Germany with limited liability and registered in England (registered no. FC007638, place of business 30 Gresham Street, London EC2V 7PG), and is authorised by the German Federal Financial Supervisory Authority and by the Financial Services Authority ('FSA') and regulated by the FSA for the conduct of designated business in the UK. Dresdner Kleinwort Limited is a company incorporated in England (registered no. 551334, registered office 30 Gresham Street, London EC2V 7PG), and is authorised and regulated by the FSA. Dresdner Kleinwort Securities Limited is a company incorporated in England (registered no. 1767419, registered office 30 Gresham Street, London EC2V 7PG), and is authorised and regulated by the FSA.

On Wednesday, August 22, 2007 at 15:52:32 (+0100) Fletcher, Matthew (Information Technology) writes:
Yes the stack trace seems incredibly deep for calling one line of boost code (over 200 depth). I was hoping someone might guess what is going wrong from the structure of the stack trace. I have looked through every frame but can't see anything unusual, but the very fact it is so deep feels wrong. The top-level object being serialized has some structure but is not particularly complicated.
Yes it has worked in the past and works for small data sets now. However I did not write the original code and suspect there may be some subtlety which is leading the serializations to blow up in size and I can't find it. Even seemingly small examples give rise to serializations of several megabytes. The stack is of the order of 1Gb and cannot be easily increased but I suspect the stack/heap size just lets it get into such a deep mess before finally dying and the real problem is some conceptual mistake in how my class's serialization has been implemented.
I encountered a similar problem some time ago. At first I increased my stack space (on Linux, with ulimit), and then coded a bump in stack space in the program. Both worked, but I discovered that the problem was in my code. The issue was a very deeply nested graph that caused lots of calls to the serialization methods of nested classes that would terminate after a very long chain, and then pop the stack back. I recoded to unroll loops of these chains "by hand" and got around it. Bill

Hi! Bill Lear schrieb:
The issue was a very deeply nested graph that caused lots of calls to the serialization methods of nested classes that would terminate after a very long chain, and then pop the stack back. I recoded to unroll loops of these chains "by hand" and got around it.
Maybe it's worth to try turning template/function inlining on even for debug builds. Frank
participants (3)
-
Bill Lear
-
Fletcher, Matthew (Information Technology)
-
Frank Birbacher