[Quickfix-developers] Memory corruption?
Brought to you by:
orenmnero
From: Hei C. <str...@ya...> - 2012-04-18 23:19:26
|
Hi, I am running valgrind on my application, and I saw some warning about gnu allocator? Here is the partial trace: ==31998== Thread 19: ==31998== Invalid read of size 8 ==31998== at 0x35D56532CB: __gnu_cxx::__pool<true>::_M_get_thread_id() (in /usr/lib64/libstdc++.so.6.0.8) ==31998== by 0x44F732: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, FIX::FieldBase> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned long, void const*) (mt_allocator.h:682) ==31998== by 0x44F811: std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, __gnu_cxx::__mt_alloc<std::pair<int const, FIX::FieldBase>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> > >::_M_get_node() (stl_tree.h:358) ==31998== by 0x44F82D: std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, __gnu_cxx::__mt_alloc<std::pair<int const, FIX::FieldBase>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> > >::_M_create_node(std::pair<int const, FIX::FieldBase> const&) (stl_tree.h:367) ==31998== by 0x44F938: std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, __gnu_cxx::__mt_alloc<std::pair<int const, FIX::FieldBase>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<int const, FIX::FieldBase> const&) (stl_tree.h:819) ==31998== by 0x44FA22: std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, __gnu_cxx::__mt_alloc<std::pair<int const, FIX::FieldBase>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> > >::insert_equal(std::pair<int const, FIX::FieldBase> const&) (stl_tree.h:860) ==31998== by 0x44FA46: std::multimap<int, FIX::FieldBase, FIX::message_order, __gnu_cxx::__mt_alloc<std::pair<int const, FIX::FieldBase>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> > >::insert(std::pair<int const, FIX::FieldBase> const&) (stl_multimap.h:355) ==31998== by 0x44FB0A: FIX::FieldMap::setField(FIX::FieldBase const&, bool) (FieldMap.h:85) ==31998== by 0x44FD49: FIX::Message::Message(FIX::BeginString const&, FIX::MsgType const&) (Message.h:118) ==31998== by 0x45B8BF: FIX44::Message::Message(FIX::MsgType const&) (Message.h:62) ==31998== by 0x45B98A: FIX44::MassQuote::MassQuote(FIX::QuoteID const&) (MassQuote.h:20) The most similar trace I found in google search is this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52604 I turned off boost allocator in config.h. Any idea? Thanks in advance. Cheers, Hei |