Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9612: Memory Access Violation when recursively serializing classes
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-01-31 15:16:22
#9612: Memory Access Violation when recursively serializing classes
------------------------------------------+---------------------------
Reporter: Chris Rusby <chris.rusby@â¦> | Owner: ramey
Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
Version: Boost 1.55.0 | Severity: Problem
Resolution: | Keywords:
------------------------------------------+---------------------------
Comment (by brandon.kohn):
It looks like there are two instances of the
basic_iserializer<xml_iarchive, TestObject> which live in the CrashTestDLL
and then in CrashTest. The one in the dll has a bpis member where the one
in CrashTest has a null member. To figure this out I set a breakpoint on
baseic_iserializer.hpp: basic_iserializer::set_bpis (around line 64 in
boost 1.53). When it loads the dll you'll see these singletons being setup
with the pointer iserializer.
Then in the test case code add:
{{{
#!c++
BOOST_AUTO( const &cinst,
(boost::serialization::singleton<boost::archive::detail::iserializer<boost::archive::xml_iarchive,
TestObject> >::get_const_instance()) );
BOOST_CHECK(cinst.get_bpis_ptr() != 0);//! This is null!
}}}
I used the debugger to copy the value of m_bpis from the singleton in the
DLL into the one in the main application and it then loads.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9612#comment:1> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC