id summary reporter owner description type status milestone component version severity resolution keywords cc 13354 xml_iarchive destructor calls abort() anonymous Robert Ramey "In the following Unit Test from VS2017 15.5.2 with Boost 1.66.0 from vcpkg, boost::archive::xml_iarchive() is successfully used to load an integer. When it goes out of scope, its destructor calls abort(). {{{ #include ""stdafx.h"" #include ""CppUnitTest.h"" using namespace Microsoft::VisualStudio::CppUnitTestFramework; #include #include #include #include #include namespace UtilityLibTest { class XmlArchiveTest { public: XmlArchiveTest() { m_value = 4; } int Value() const { return m_value; } void Value(const int v) { m_value = v; } private: friend class boost::serialization::access; void load(boost::archive::xml_iarchive & ar, unsigned int version) { ar & BOOST_SERIALIZATION_NVP(m_value); } void save(boost::archive::xml_oarchive & ar, unsigned int version) const { ar & BOOST_SERIALIZATION_NVP(m_value); } BOOST_SERIALIZATION_SPLIT_MEMBER() protected: int m_value; }; TEST_CLASS(UnitTest1) { public: TEST_METHOD(XmlArchive_SaveLoad) { XmlArchiveTest store; // save block std::stringstream xml(std::stringstream::out); boost::archive::xml_oarchive archive(xml); archive & BOOST_SERIALIZATION_NVP(store); xml.flush(); auto xml1 = xml.str(); store.Value(234); // load block std::stringstream xml2; xml2 << xml1; boost::archive::xml_iarchive archive2(xml2); archive2 & BOOST_SERIALIZATION_NVP(store); Assert::AreEqual(4, store.Value(), L""4 != store.Value""); } }; } }}} Call stack {{{ > ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28 C++ Non-user code. Symbols loaded. ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154 C++ Non-user code. Symbols loaded. ucrtbased.dll!abort() Line 51 C++ Non-user code. Symbols loaded. ucrtbased.dll!terminate() Line 59 C++ Non-user code. Symbols loaded. vcruntime140d.dll!FindHandler(EHExceptionRecord * pExcept, EHRegistrationNode * pRN, _CONTEXT * pContext, void * pDC, const _s_FuncInfo * pFuncInfo, unsigned char recursive, int CatchDepth, EHRegistrationNode * pMarkerRN) Line 627 C++ Non-user code. Symbols loaded. vcruntime140d.dll!__InternalCxxFrameHandler(EHExceptionRecord * pExcept, EHRegistrationNode * pRN, _CONTEXT * pContext, void * pDC, const _s_FuncInfo * pFuncInfo, int CatchDepth, EHRegistrationNode * pMarkerRN, unsigned char recursive) Line 347 C++ Non-user code. Symbols loaded. vcruntime140d.dll!__CxxFrameHandler(EHExceptionRecord * pExcept, EHRegistrationNode * pRN, void * pContext, void * pDC) Line 219 C++ Non-user code. Symbols loaded. ntdll.dll!ExecuteHandler2@20() Unknown Non-user code. Symbols loaded. ntdll.dll!ExecuteHandler@20() Unknown Non-user code. Symbols loaded. ntdll.dll!_KiUserExceptionDispatcher@8() Unknown Non-user code. Symbols loaded. KernelBase.dll!_RaiseException@16() Unknown Non-user code. Symbols loaded. vcruntime140d.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 136 C++ Non-user code. Symbols loaded. boost_serialization-vc141-mt-gd-x32-1_66.dll!0fe82f45() Unknown No symbols loaded. [Frames below may be incorrect and/or missing, no symbols loaded for boost_serialization-vc141-mt-gd-x32-1_66.dll] Annotated Frame boost_serialization-vc141-mt-gd-x32-1_66.dll!0fec45ad() Unknown No symbols loaded. boost_serialization-vc141-mt-gd-x32-1_66.dll!0fec72fc() Unknown No symbols loaded. boost_serialization-vc141-mt-gd-x32-1_66.dll!0fec7d33() Unknown No symbols loaded. UnitTestsUtilityLib.dll!boost::archive::xml_iarchive::~xml_iarchive() Line 129 C++ Symbols loaded. UnitTestsUtilityLib.dll!UtilityLibTest::UnitTest1::XmlArchive_SaveLoad() Line 72 C++ Symbols loaded. }}}" Bugs new To Be Determined serialization Boost 1.66.0 Problem