Opened 15 years ago

Closed 15 years ago

#1508 closed Bugs (fixed)

text_map_binary_archive failure

Reported by: jrp at dial dot pipex dot com Owned by: Robert Ramey
Milestone: Boost 1.35.0 Component: serialization
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

VC++ 2008 throws an error ("string iterator not dereferencable") when running text_map_binary_archive

The problem occurs in text_iarchive_impl.ipp at the line

is.read(&(*s.begin()), size);

in routine text_iarchive_impl<Archive>::load(std::string &s)

size=0 and and s=""

The call stack is

 	msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x10062948, const wchar_t * file=0x10062990, unsigned int line=112)  Line 24	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*()  Line 112 + 0x12 bytes	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*()  Line 370	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & s="")  Line 56 + 0x29 bytes	C++
>	test_map_text_archive_dll.exe!boost::archive::load_access::load_primitive<boost::archive::text_iarchive,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(boost::archive::text_iarchive & ar={...}, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="")  Line 97	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::load_primitive::invoke(boost::archive::text_iarchive & ar={...}, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="")  Line 339 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::invoke(boost::archive::text_iarchive & ar={...}, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="")  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(boost::archive::text_iarchive & ar={...}, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="")  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="", int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="", int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="", int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & t="")  Line 64	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::load<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int __formal=0)  Line 87	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::member_load<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 102	C++
 	test_map_text_archive_dll.exe!boost::serialization::detail::member_loader<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 54 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::split_member<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 69 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int file_version=0)  Line 88 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 110	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 81 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::load_only::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 351 + 0xf bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load_wrapper<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, boost::mpl::bool_<1> __formal={...})  Line 583 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 589 + 0x12 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const >(const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const >(const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const >(const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...}, int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const >(const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 64	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator&<boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const >(const boost::serialization::nvp<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & t={...})  Line 71	C++
 	test_map_text_archive_dll.exe!A::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int __formal=0)  Line 94	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::serialize<boost::archive::text_iarchive,A>(boost::archive::text_iarchive & ar={...}, A & t={...}, const unsigned int file_version=0)  Line 110	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,A>(boost::archive::text_iarchive & ar={...}, A & t={...}, const unsigned int file_version=0)  Line 81 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,A>(boost::archive::text_iarchive & ar={...}, A & t={...}, const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::iserializer<boost::archive::text_iarchive,A>::load_object_data(boost::archive::detail::basic_iarchive & ar={...}, void * x=0x0012f730, const unsigned int file_version=0)  Line 164 + 0x1a bytes	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive_impl::load_object(boost::archive::detail::basic_iarchive & ar={...}, void * t=0x0012f730, const boost::archive::detail::basic_iserializer & bis={...})  Line 388	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive::load_object(void * t=0x0012f730, const boost::archive::detail::basic_iserializer & bis={...})  Line 523	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,A>::load_standard::invoke(boost::archive::text_iarchive & ar={...}, A & t={...})  Line 365	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,A>::invoke(boost::archive::text_iarchive & ar={...}, A & t={...})  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,A>(boost::archive::text_iarchive & ar={...}, A & t={...})  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<A>(A & t={...}, int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<A>(A & t={...}, int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<A>(A & t={...}, int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><A>(A & t={...})  Line 64	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<A>::load<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int __formal=0)  Line 87	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::member_load<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 102	C++
 	test_map_text_archive_dll.exe!boost::serialization::detail::member_loader<boost::archive::text_iarchive,boost::serialization::nvp<A> >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 54 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::split_member<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 69 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<A>::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int file_version=0)  Line 88 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::serialize<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 110	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 81 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...}, const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<A> >::load_only::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...})  Line 351 + 0xf bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<A> >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...})  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<A> & t={...})  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load_wrapper<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<A> & t={...}, boost::mpl::bool_<1> __formal={...})  Line 583 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<A> >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<A> & t={...})  Line 589 + 0x12 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<A> const >(const boost::serialization::nvp<A> & t={...}, int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<A> const >(const boost::serialization::nvp<A> & t={...}, int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<A> const >(const boost::serialization::nvp<A> & t={...}, int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::serialization::nvp<A> const >(const boost::serialization::nvp<A> & t={...})  Line 64	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator&<boost::serialization::nvp<A> const >(const boost::serialization::nvp<A> & t={...})  Line 71	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,random_key const ,A>(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & p=({m_i=17505 },{b=true f=553902118 g=661662372 ...}), const unsigned int __formal=0)  Line 43	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,std::pair<random_key const ,A> >(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}), const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::iserializer<boost::archive::text_iarchive,std::pair<random_key const ,A> >::load_object_data(boost::archive::detail::basic_iarchive & ar={...}, void * x=0x0012f728, const unsigned int file_version=0)  Line 164 + 0x1a bytes	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive_impl::load_object(boost::archive::detail::basic_iarchive & ar={...}, void * t=0x0012f728, const boost::archive::detail::basic_iserializer & bis={...})  Line 388	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive::load_object(void * t=0x0012f728, const boost::archive::detail::basic_iserializer & bis={...})  Line 523	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::pair<random_key const ,A> >::load_standard::invoke(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}))  Line 365	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::pair<random_key const ,A> >::load_conditional::invoke(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}))  Line 371 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::pair<random_key const ,A> >::invoke(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}))  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,std::pair<random_key const ,A> >(boost::archive::text_iarchive & ar={...}, std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}))  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<std::pair<random_key const ,A> >(std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}), int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<std::pair<random_key const ,A> >(std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}), int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<std::pair<random_key const ,A> >(std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}), int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><std::pair<random_key const ,A> >(std::pair<random_key const ,A> & t=({m_i=17505 },{b=true f=553902118 g=661662372 ...}))  Line 64	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::pair<random_key const ,A> >::load<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int __formal=0)  Line 87	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::member_load<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 102	C++
 	test_map_text_archive_dll.exe!boost::serialization::detail::member_loader<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 54 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::split_member<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 69 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::pair<random_key const ,A> >::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int file_version=0)  Line 88 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 110	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 81 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >::load_only::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...})  Line 351 + 0xf bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...})  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::pair<random_key const ,A> > & t={...})  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load_wrapper<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, boost::mpl::bool_<1> __formal={...})  Line 583 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...})  Line 589 + 0x12 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::pair<random_key const ,A> > const >(const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::pair<random_key const ,A> > const >(const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::pair<random_key const ,A> > const >(const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...}, int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::serialization::nvp<std::pair<random_key const ,A> > const >(const boost::serialization::nvp<std::pair<random_key const ,A> > & t={...})  Line 64	C++
 	test_map_text_archive_dll.exe!boost::serialization::stl::archive_input_multi<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::operator()(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & s=[0](), const unsigned int v=0)  Line 96	C++
 	test_map_text_archive_dll.exe!boost::serialization::stl::load_collection<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > >,boost::serialization::stl::archive_input_multi<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >,boost::serialization::stl::no_reserve_imp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & s=[0]())  Line 135	C++
 	test_map_text_archive_dll.exe!boost::serialization::load<boost::archive::text_iarchive,A,random_key,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), const unsigned int __formal=0)  Line 101 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::free_loader<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::invoke(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), const unsigned int file_version=0)  Line 58 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::split_free<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), const unsigned int file_version=0)  Line 74 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,A,random_key,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), const unsigned int file_version=0)  Line 112 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::iserializer<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::load_object_data(boost::archive::detail::basic_iarchive & ar={...}, void * x=0x0012feec, const unsigned int file_version=0)  Line 164 + 0x1a bytes	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive_impl::load_object(boost::archive::detail::basic_iarchive & ar={...}, void * t=0x0012feec, const boost::archive::detail::basic_iserializer & bis={...})  Line 388	C++
 	boost_serialization-vc90-mt-gd-1_35.dll!boost::archive::detail::basic_iarchive::load_object(void * t=0x0012feec, const boost::archive::detail::basic_iserializer & bis={...})  Line 523	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::load_standard::invoke(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0]())  Line 365	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::invoke(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0]())  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(boost::archive::text_iarchive & ar={...}, std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0]())  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0](), int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >(std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > & t=[0]())  Line 64	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::load<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int __formal=0)  Line 87	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::member_load<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 102	C++
 	test_map_text_archive_dll.exe!boost::serialization::detail::member_loader<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 54 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::split_member<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 69 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > >::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive & ar={...}, const unsigned int file_version=0)  Line 88 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::access::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 110	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 81 + 0x11 bytes	C++
 	test_map_text_archive_dll.exe!boost::serialization::serialize_adl<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, const unsigned int file_version=0)  Line 140 + 0x18 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >::load_only::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...})  Line 351 + 0xf bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >::invoke(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...})  Line 414 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...})  Line 561 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load_wrapper<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, boost::mpl::bool_<1> __formal={...})  Line 583 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::load<boost::archive::text_iarchive,boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > >(boost::archive::text_iarchive & ar={...}, const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...})  Line 589 + 0x12 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > const >(const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, int __formal=0)  Line 59 + 0x15 bytes	C++
 	test_map_text_archive_dll.exe!boost::archive::basic_text_iarchive<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > const >(const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, int __formal=0)  Line 63	C++
 	test_map_text_archive_dll.exe!boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override<boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > const >(const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...}, int __formal=0)  Line 66	C++
 	test_map_text_archive_dll.exe!boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > const >(const boost::serialization::nvp<std::multimap<random_key,A,std::less<random_key>,std::allocator<std::pair<random_key const ,A> > > > & t={...})  Line 64	C++
 	test_map_text_archive_dll.exe!test_multimap()  Line 139	C++
 	test_map_text_archive_dll.exe!test_main(int __formal=1, int __formal=1)  Line 241	C++
 	test_map_text_archive_dll.exe!main(int argc=1, char * * argv=0x00c61ca0)  Line 166 + 0xd bytes	C++
 	test_map_text_archive_dll.exe!__tmainCRTStartup()  Line 582 + 0x19 bytes	C
 	test_map_text_archive_dll.exe!mainCRTStartup()  Line 399	C

Change History (4)

comment:1 by Richard Webb <richard.webb@…>, 15 years ago

I just got this error (plus a few other similar ones) when running an incremental regression test on Trunk.

I didnt get the error when i ran the full test, so i'm not sure if it's a result of the incremental test or something that has been changed in the past few days.

comment:2 by Robert Ramey, 15 years ago

Resolution: wontfix
Status: newclosed

I am curious about this. This is a recent change. I don't trust bjam "incremental". So until I get some more confirmation I'm going to assume its a test artifact.

Robert Ramey

comment:3 by Richard Webb <richard.webb@…>, 15 years ago

Resolution: wontfix
Status: closedreopened

This isn't simply a test artifact - you get the same error with the simple program:

int _tmain(int argc, _TCHAR* argv[])
{
	std::stringstream sss;
	boost::archive::text_oarchive oa(sss);

	std::string out;
	oa << out;

	std::string in;
	boost::archive::text_iarchive ia(sss);
	ia >> in;

	return 0;
}

The same thing happens on both VC8(SP1) and VC9 (and both work fine if the initial string isn't empty).

The problem with the

is.read(&(*s.begin()), size);

is that if size is 0 (and therefore s is empty) you end up dereferencing an 'invalid' iterator, which the debug iterators don't like you doing.

comment:4 by Robert Ramey, 15 years ago

Resolution: fixed
Status: reopenedclosed

OK

I've made the following change

if(0 < size)

is.read(&(*s.begin()), size);

Hopefully that should do it.

Thanks for spending the time to characterise this.

Robert Ramey

Note: See TracTickets for help on using tickets.