Boost logo

Boost Users :

From: Robert Ramey (ramey_at_[hidden])
Date: 2007-11-28 11:25:26


binary archives are designed to be fastest implementation of the archive
concept. They are not portable.

Currently, if you need portability, you'll have to use a text based archive
such as text_?archive, or xml_archive.

Robert Ramey

Daniel Oberhoff wrote:
> Hi,
>
> I have a problem with boost::serialization in that I cannot transport
> binary archives between my macbookpro (osx 10.4 latest update) and my
> dell box at work (ubuntu gutsy with universe). As a test I just
> serialized a 10-byte binary object. Has anyone else been moving binary
> archives between different platforms?
>
>
> here are the stacktraces up to the exception throws
>
> Moving from ubuntu to osx I get this
>
> #7 0x0001bcc8 in
> boost::throw_exception<boost::archive::archive_exception> () at
> libs/serialization/src/basic_serializer_map.cpp:52 #8 0x0000f104 in
> boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::init
> (this=0xbfffeec8) at
> ./boost/archive/impl/basic_binary_iarchive.ipp:54 #9 0x0000f20b in
> boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
> char, std::char_traits<char> >::init (this=0xbfffeec8, flags=0) at
> ./boost/archive/binary_iarchive_impl.hpp:51 #10 0x0000f4a4 in
> boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
> char, std::char_traits<char> >::binary_iarchive_impl
> (this=0xbfffeec8, is=@0xbfffec30, flags=0) at
> ./boost/archive/binary_iarchive_impl.hpp:80 #11 0x0001862d in
> boost::archive::binary_iarchive::binary_iarchive () at
> libs/serialization/src/basic_serializer_map.cpp:52 #12 0x00002bda in
> main ()
>
> the other direction:
>
> #4 0x00002b41bac2d773 in std::terminate () from
> /usr/lib/libstdc++.so.6 #5 0x00002b41bac2d85a in __cxa_throw () from
> /usr/lib/libstdc++.so.6 #6 0x00002b41babc944a in
> std::__throw_length_error () from /usr/lib/libstdc++.so.6 #7
> 0x00002b41bac0cda2 in std::string::resize () from
> /usr/lib/libstdc++.so.6 #8 0x00000000004339de in
> boost::archive::basic_binary_iprimitive<boost::archive::binary_iarchive,
> char, std::char_traits<char> >::load (this=0x7ffff015afe0,
> s=@0x7ffff015ad50) at
> ./boost/archive/impl/basic_binary_iprimitive.ipp:96 #9
> 0x0000000000433a23 in
> boost::archive::load_access::load_primitive<boost::archive::binary_iarchive,
> std::string> (ar=@0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/detail/iserializer.hpp:96 #10 0x0000000000433a43 in
>
> boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive,
> std::string>::load_primitive::invoke (ar=@0x7ffff015afd0,
> t=@0x7ffff015ad50) at ./boost/archive/detail/iserializer.hpp:339 #11
> 0x0000000000433a63 in
> boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive,
> std::string>::invoke (ar=@0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/detail/iserializer.hpp:414 #12 0x0000000000433a83 in
> boost::archive::load<boost::archive::binary_iarchive, std::string>
> (ar=@0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/detail/iserializer.hpp:561 #13 0x0000000000433aae in
> boost::archive::detail::common_iarchive<boost::archive::binary_iarchive>::load_override<std::string>
> (this=0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/detail/common_iarchive.hpp:59 #14 0x0000000000433ad3
> in
> boost::archive::array::iarchive<boost::archive::binary_iarchive>::load_override<std::string>
> (this=0x7ffff015afd0, x=@0x7ffff015ad50, version=0) at
> ./boost/archive/array/iarchive.hpp:122 #15 0x0000000000433afb in
> boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::load_override<std::string>
> (this=0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/basic_binary_iarchive.hpp:62 #16 0x0000000000433b23
> in
> boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
> char, std::char_traits<char> >::load_override<std::string>
> (this=0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/binary_iarchive_impl.hpp:45 #17 0x0000000000433b50 in
> boost::archive::detail::interface_iarchive<boost::archive::binary_iarchive>::operator>><std::string>
> (this=0x7ffff015afd0, t=@0x7ffff015ad50) at
> ./boost/archive/detail/interface_iarchive.hpp:63 #18
> 0x0000000000433b87 in
> boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::init
> (this=0x7ffff015afd0) at
> ./boost/archive/impl/basic_binary_iarchive.ipp:52 #19
> 0x000000000040c8ee in
> boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
> char, std::char_traits<char> >::init (this=0x7ffff015afd0, flags=0)
> at ./boost/archive/binary_iarchive_impl.hpp:51 #20 0x000000000040c971
> in binary_iarchive_impl (this=0x7ffff015afd0, is=@0x7ffff015b790,
> flags=0) at ./boost/archive/binary_iarchive_impl.hpp:80 #21
> 0x000000000040c9db in
> boost::archive::binary_iarchive::binary_iarchive () at
> ./boost/archive/codecvt_null.hpp:48 #22 0x0000000000405518 in main ()
>
>
> daniel


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