
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 @ Ramey: sorry. I Haven't known there's a seperate project for this. @ all: I'm using: Boost 1.32.0 OS: Solaris 10 64-bit Sparc and AMD64 CC: Sun C++ 5.8 Patch 121018-10 2007/02/21 Kind regards, Markus Robert Ramey schrieb:
Wouldn't this be an issue to be addressed in the "i/o state saver" library?
Robert Ramey
Markus Bernhardt wrote: Hi,
I'm using purify to check my app. Using serialization, I see the following FMR:
#################
FMR: Free memory read This is occurring while in thread 3: std::locale::~locale() [libstlport.so.1] boost::scoped_ptr<std::locale>::~scoped_ptr() boost::archive::basic_binary_iprimitive<boost::archive:: binary_iarchive,std::basic_istream <char,std::char_traits<char> > >::~basic_binary_iprimitive() boost::archive::binary_iarchive_impl <boost::archive::binary_iarchive>::~binary_iarchive_impl()
boost::archive::binary_iarchive::~binary_iarchive() void de::scmb::bm::seri::Serializer::serialize (std::basic_ifstream<char,std::char_traits<char> >&, de::scmb::bm::core::Instance&)
Reading 8 bytes from 0x100312228 in the heap. Address 0x100312228 is at the beginning of a freed block of 80 bytes.
This block was allocated from thread 3: malloc [rtlib.o] c2n6Fl_Pv___1 [libCrun.so.1] void*operator new(unsigned long) [rtlib.o] std::locale::locale(std::_Locale_impl*,bool) [libstlport.so.1] std::locale::locale<boost::archive::codecvt_null<char> > (const std::locale&,__type_0*) [libboost_serialization-sw-d.a] std::locale*boost::archive::add_facet <boost::archive::codecvt_null<char> >(const std::locale&,__type_0*) [libboost_serialization-sw-d.a]
There have been 0 frees since this block was freed from thread 3: free [rtlib.o] c2k6FPv_v___1 [libCrun.so.1] void operator delete(void*) [rtlib.o] boost::io::basic_ios_locale_saver <char,std::char_traits<char> >::~basic_ios_locale_saver() [libboost_serialization-sw-d.a] boost::archive::basic_binary_iprimitive <boost::archive::binary_iarchive,std::basic_istream <char,std::char_traits<char> > >::~basic_binary_iprimitive() [libboost_serialization-sw-d.a] boost::archive::binary_iarchive_impl <boost::archive::binary_iarchive>::~binary_iarchive_impl() [Serializer.cpp]
#################
Has anyone seen this before.
Looks like std::locale is using a buffer with 80 bytes size, which is shared between std::locale objetcs and get deleted by the destruction of a basic_ios_locale_saver object, which has a std::locale object.
Is this guess correct ??
Can this become a problem ??
Kind regards, Markus
-- Software Consulting Markus Bernhardt GmbH Spieljochstr. 34 81825 München
Fon: +49-89-420903-14 Fax: +49-89-420903-20 www: http://www.scmb.de
Geschäftsführung Markus Bernhardt Handelsregister AG München HRB 125966 USt-Id DE201885231
------------------------------------------------------------------------
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
- -- Software Consulting Markus Bernhardt GmbH Spieljochstr. 34 81825 München Fon: +49-89-420903-14 Fax: +49-89-420903-20 www: http://www.scmb.de Geschäftsführung Markus Bernhardt Handelsregister AG München HRB 125966 USt-Id DE201885231 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGjmcHdnooMonJSYkRAkTKAJ4g4C7H6llAUvsu7YGCo1lNsPG3lwCfZCvW wHA2T/RpjuDE/77Csdu5FXg= =nS3m -----END PGP SIGNATURE-----