
From what I can gather, the List member (which is a list<>) is constructed in shared memory, and deep within, it calls class segment_manager_base<MemoryAlgorithm>::allocate_many(size, 0). The MemoryAlgorithm is rb_tree_best_fit<..>. allocate_many (imo correctly) returns NULL for a 0-element allocation, which causes the exception to be
Hello all (Hi Ion) Here's a small piece of code that causes an exception to be thrown (when it shouldn't). The environment is MSVC8 (VS2005SP1) with Boost 1.37. The code is an adaption of one of the samples in the interprocess documentation. The samples creates a vector of ClassWithList in shared memory. Then it creates an instance of ClassWithList and push_back()'s it onto the vector. thrown. Replacing the member variable type "list<>" with a "vector<>" makes everything work nicely. (allocate_many() is not used in that case). Thanks roland PS: Other than this, interprocess::* has been great! #include <boost/interprocess/managed_shared_memory.hpp> #include <boost/interprocess/containers/vector.hpp> #include <boost/interprocess/containers/list.hpp> #include <boost/interprocess/allocators/allocator.hpp> int main () { using namespace boost::interprocess; //Typedefs typedef managed_shared_memory::segment_manager SegmentManager; typedef struct ListElem { int nValue; } ListElem; typedef allocator<ListElem, SegmentManager> ListElemAllocator; typedef list<ListElem, ListElemAllocator> ListElemList; typedef allocator<void, SegmentManager> VoidAllocator; class ClassWithList { public: ClassWithList(const VoidAllocator &alloc) : List(alloc) {} ListElemList List; }; typedef allocator<ClassWithList, SegmentManager> ClassWithListAllocator; typedef vector<ClassWithList, ClassWithListAllocator> ClassWithListVector; shared_memory_object::remove("myshm"); try{ managed_shared_memory shm(create_only, "myshm", 10000); //Create allocators VoidAllocator voidallocator(shm.get_segment_manager()); ClassWithListAllocator classwithlistallocator(shm.get_segment_manager()); //Create a vector of strings in shared memory. ClassWithListVector *pVector = shm.construct<ClassWithListVector>("classwithlistvector")(classwithlistalloc ator); ClassWithList classwithlist(voidallocator); pVector->push_back(classwithlist); // exception thrown here -> bad_alloc (segment_manager.hpp, line 132) /* here's the faulting function: multiallocation_iterator allocate_many(std::size_t elem_bytes, std::size_t num_elements) { multiallocation_iterator ret = MemoryAlgorithm::allocate_many(elem_bytes, num_elements); if(!ret) throw bad_alloc(); // <--- this throws, num_elements is 0, // elem_bytes is 12, // ret is NULL'ish (ret.next_alloc_.next_ is 1, type is offset_ptr<void>) return ret; } */ shm.destroy_ptr(pVector); } catch(...){ shared_memory_object::remove("myshm"); throw; } shared_memory_object::remove("myshm"); return 0; } Stacktrace: kernel32.dll!_RaiseException@16() + 0x52 bytes msvcr80d.dll!_CxxThrowException(void * pExceptionObject=0x0013e078, const _s__ThrowInfo * pThrowInfo=0x00450394) Line 161 C++
BoostTest.exe!boost::interprocess::segment_manager_base<boost::interprocess: :rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offs et_ptr<void>,0> >::allocate_many(unsigned int elem_bytes=0x0000000c, unsigned int num_elements=0x00000000) Line 130 C++ BoostTest.exe!?allocate_many@?$allocator@U?$list_node@UListElem@?1?main@V?$o ffset_ptr@X@interprocess@boost@@@detail@interprocess@boost@@V?$segment_manag er@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@ $0A@@interprocess@boost@@Viset_index@23@@34@@interprocess@boost@@QAE?AV?$tra nsform_iterator@V?$basic_multiallocation_iterator@V?$offset_ptr@X@interproce ss@boost@@@detail@interprocess@boost@@U?$cast_functor@U?$list_node@UListElem @?1?main@V?$offset_ptr@X@interprocess@boost@@@detail@interprocess@boost@@@23 4@@23@II@Z(unsigned int elem_size=0x00000001, unsigned int num_elements=0x00000000) Line 195 + 0x30 bytes C++ BoostTest.exe!?allocate_individual@?$allocator@U?$list_node@UListElem@?1?mai n@V?$offset_ptr@X@interprocess@boost@@@detail@interprocess@boost@@V?$segment _manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr @X@23@$0A@@interprocess@boost@@Viset_index@23@@34@@interprocess@boost@@QAE?A V?$transform_iterator@V?$basic_multiallocation_iterator@V?$offset_ptr@X@inte rprocess@boost@@@detail@interprocess@boost@@U?$cast_functor@U?$list_node@ULi stElem@?1?main@V?$offset_ptr@X@interprocess@boost@@@detail@interprocess@boos t@@@234@@23@I@Z(unsigned int num_elements=0x00000000) Line 229 + 0x3f bytes C++ BoostTest.exe!??$allocate_many_and_construct@Vconst_iterator@?$list@UListEle m@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best_ fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@b oost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@@interprocess @boost@@Vinsertion_functor@234@@?$node_alloc_holder@V?$allocator@UListElem@? 1?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boo st@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess @boost@@@interprocess@boost@@V?$list_impl@U?$listopt@U?$base_hook_traits@U?$ list_node@UListElem@?1?main@V?$offset_ptr@X@interprocess@boost@@@detail@inte rprocess@boost@@U?$list_node_traits@V?$offset_ptr@X@interprocess@boost@@@int rusive@4@$0A@Udefault_tag@64@$00@detail@intrusive@boost@@I$00@intrusive@boos t@@@intrusive@3@@detail@interprocess@boost@@QAE?AVconst_iterator@?$list@ULis tElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_b est_fit@Umutex_family@interprocess@boost@@V?$offs(boost::interprocess::?$lis t@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rb tree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@inte rprocess@boost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@::c onst_iterator beg={...}, int n=0x00000000, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::insertion_functor inserter={...}) Line 304 + 0x17 bytes C++ BoostTest.exe!??$priv_create_and_insert_nodes@Vconst_iterator@?$list@UListEl em@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best _fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@ boost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@@interproces s@boost@@@?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment _manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr @X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost@@@interpro cess@boost@@@interprocess@boost@@AAEXVconst_iterator@012@00U?$integral_const ant@I$01@detail@12@Uforward_iterator_tag@std@@@Z(boost::interprocess::?$list @UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbt ree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@inter process@boost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@::co nst_iterator pos={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator beg={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator end={...}, boost::interprocess::detail::integral_constant<unsigned int,2> __formal={...}, boost::interprocess::detail::integral_constant<unsigned int,2> __formal={...}) Line 1288 + 0x137 bytes C++ BoostTest.exe!??$priv_create_and_insert_nodes@Vconst_iterator@?$list@UListEl em@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best _fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@ boost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@@interproces s@boost@@@?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment _manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr @X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost@@@interpro cess@boost@@@interprocess@boost@@AAEXVconst_iterator@012@00@Z(boost::interpr ocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_ma nager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@ 23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost@@@interproces s@boost@@::const_iterator pos={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator beg={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator end={...}) Line 1246 C++ BoostTest.exe!??$priv_insert_dispatch@Vconst_iterator@?$list@UListElem@?1?ma in@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best_fit@Umu tex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@V iset_index@23@@interprocess@boost@@@interprocess@boost@@@interprocess@boost@ @@?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager @DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0 A@@interprocess@boost@@Viset_index@23@@interprocess@boost@@@interprocess@boo st@@@interprocess@boost@@AAEXVconst_iterator@012@00U?$bool_@$0A@@detail@12@@ Z(boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?ma in@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@ V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boo st@@@interprocess@boost@@::const_iterator p={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator first={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator last={...}, boost::interprocess::detail::bool_<0> __formal={...}) Line 1310 C++ BoostTest.exe!??$insert@Vconst_iterator@?$list@UListElem@?1?main@V?$allocato r@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@int erprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@ @interprocess@boost@@@interprocess@boost@@@interprocess@boost@@@?$list@UList Elem@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_be st_fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interproces s@boost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@@interproc ess@boost@@QAEXVconst_iterator@012@00@Z(boost::interprocess::?$list@UListEle m@?1?main@V?$allocator@UListElem@?1?main@V?$segment_manager@DV?$rbtree_best_ fit@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@b oost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@::const_itera tor p={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator first={...}, boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@::const_iterator last={...}) Line 795 C++ BoostTest.exe!??0?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main@V?$ segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V?$off set_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost@@@i nterprocess@boost@@@interprocess@boost@@QAE@ABV012@@Z(const boost::interprocess::?$list@UListElem@?1?main@V?$allocator@UListElem@?1?main @V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boost@@V? $offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess@boost @@@interprocess@boost@@ & x={...}) Line 364 + 0xcf bytes C++ BoostTest.exe!`main'::`3'::ClassWithList::ClassWithList(const main::__l3::ClassWithList & __that=) + 0x2f bytes C++ BoostTest.exe!??$_Construct@VClassWithList@?2?main@V1?2?main@@std@@YAXPAVCla ssWithList@?2??main@@9@ABV1?2??2@9@@Z(main::__l3::ClassWithList * _Ptr=0x003700a0, const main::__l3::ClassWithList & _Val=) Line 53 + 0x33 bytes C++ BoostTest.exe!??$_Uninit_copy@V?$constant_iterator@VClassWithList@?2?main@H@ interprocess@boost@@PAVClassWithList@?2?main@@std@@YAPAVClassWithList@?2??ma in@@9@V?$constant_iterator@VClassWithList@?2?main@H@interprocess@boost@@0PAV 1?2??2@9@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z(bo ost::interprocess::?$constant_iterator@VClassWithList@?2?main@H _First={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H _Last={...}, main::__l3::ClassWithList * _Dest=0x003700a0, std::_Nonscalar_ptr_iterator_tag __formal={...}, std::_Nonscalar_ptr_iterator_tag __formal={...}) Line 55 + 0x1e bytes C++ BoostTest.exe!??$uninitialized_copy@V?$constant_iterator@VClassWithList@?2?m ain@H@interprocess@boost@@PAVClassWithList@?2?main@@std@@YAPAVClassWithList@ ?2??main@@9@V?$constant_iterator@VClassWithList@?2?main@H@interprocess@boost @@0PAV1?2??2@9@@Z(boost::interprocess::?$constant_iterator@VClassWithList@?2 ?main@H _First={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H _Last={...}, main::__l3::ClassWithList * _Dest=0x003700a0) Line 102 + 0x85 bytes C++ BoostTest.exe!?uninitialized_copy_all_to@?$advanced_insert_aux_proxy@VClassW ithList@?2?main@V?$constant_iterator@VClassWithList@?2?main@H@interprocess@b oost@@PAV1?2?main@@detail@interprocess@boost@@UAEXPAVClassWithList@?2??main@ @9@@Z(main::__l3::ClassWithList * p=0x003700a0) Line 57 + 0xa3 bytes C++ BoostTest.exe!?priv_range_insert_new_allocation@?$vector@VClassWithList@?2?m ain@V?$allocator@VClassWithList@?2?main@V?$segment_manager@DV?$rbtree_best_f it@Umutex_family@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@bo ost@@Viset_index@23@@interprocess@boost@@@interprocess@boost@@@interprocess@ boost@@AAEXPAVClassWithList@?2??main@@9@I0IAAU?$advanced_insert_aux_int@VCla ssWithList@?2?main@PAV1?2?main@@detail@23@@Z(main::__l3::ClassWithList * new_start=0x003700a0, unsigned int new_cap=0x00000001, main::__l3::ClassWithList * pos=0x00000000, unsigned int n=0x00000001, boost::interprocess::detail::?$advanced_insert_aux_int@VClassWithList@?2?mai n@PAV1?2?main@ & interf={...}) Line 1440 + 0x19 bytes C++ BoostTest.exe!?priv_range_insert@?$vector@VClassWithList@?2?main@V?$allocato r@VClassWithList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_famil y@interprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_inde x@23@@interprocess@boost@@@interprocess@boost@@@interprocess@boost@@AAEXV?$o ffset_ptr@VClassWithList@?2?main@@23@IAAU?$advanced_insert_aux_int@VClassWit hList@?2?main@PAV1?2?main@@detail@23@@Z(boost::interprocess::?$offset_ptr@VC lassWithList@?2?main@ pos={...}, const unsigned int n=0x00000001, boost::interprocess::detail::?$advanced_insert_aux_int@VClassWithList@?2?mai n@PAV1?2?main@ & interf={...}) Line 1387 C++ BoostTest.exe!??$priv_range_insert@V?$constant_iterator@VClassWithList@?2?ma in@H@interprocess@boost@@@?$vector@VClassWithList@?2?main@V?$allocator@VClas sWithList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@inter process@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@i nterprocess@boost@@@interprocess@boost@@@interprocess@boost@@AAEXV?$offset_p tr@VClassWithList@?2?main@@12@V?$constant_iterator@VClassWithList@?2?main@H@ 12@1Uforward_iterator_tag@std@@@Z(boost::interprocess::?$offset_ptr@VClassWi thList@?2?main@ pos={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H first={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H last={...}, std::forward_iterator_tag __formal={...}) Line 1319 C++ BoostTest.exe!??$priv_insert_dispatch@V?$constant_iterator@VClassWithList@?2 ?main@H@interprocess@boost@@@?$vector@VClassWithList@?2?main@V?$allocator@VC lassWithList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@in terprocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23 @@interprocess@boost@@@interprocess@boost@@@interprocess@boost@@AAEXV?$vecto r_const_iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@@@ detail@12@V?$constant_iterator@VClassWithList@?2?main@H@12@1U?$bool_@$0A@@41 2@@Z(boost::interprocess::detail::?$vector_const_iterator@V?$offset_ptr@VCla ssWithList@?2?main@@interprocess@boost@@ pos={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H first={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H last={...}, boost::interprocess::detail::bool_<0> __formal={...}) Line 1925 C++ BoostTest.exe!??$insert@V?$constant_iterator@VClassWithList@?2?main@H@interp rocess@boost@@@?$vector@VClassWithList@?2?main@V?$allocator@VClassWithList@? 2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interprocess@boo st@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@interprocess @boost@@@interprocess@boost@@@interprocess@boost@@QAEXV?$vector_const_iterat or@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@@@detail@12@V?$c onstant_iterator@VClassWithList@?2?main@H@12@1@Z(boost::interprocess::detail ::?$vector_const_iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess @boost@@ pos={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H first={...}, boost::interprocess::?$constant_iterator@VClassWithList@?2?main@H last={...}) Line 1149 C++ BoostTest.exe!?insert@?$vector@VClassWithList@?2?main@V?$allocator@VClassWit hList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interproc ess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@inter process@boost@@@interprocess@boost@@@interprocess@boost@@QAEXV?$vector_const _iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@@@detail@ 23@IABVClassWithList@?2??main@@9@@Z(boost::interprocess::detail::?$vector_co nst_iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@@ p={...}, unsigned int n=0x00000001, const main::__l3::ClassWithList & x=) Line 1159 + 0xc3 bytes C++ BoostTest.exe!?insert@?$vector@VClassWithList@?2?main@V?$allocator@VClassWit hList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interproc ess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@inter process@boost@@@interprocess@boost@@@interprocess@boost@@QAE?AV?$vector_iter ator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@@@detail@23@V? $vector_const_iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@bo ost@@@523@ABVClassWithList@?2??main@@9@@Z(boost::interprocess::detail::?$vec tor_const_iterator@V?$offset_ptr@VClassWithList@?2?main@@interprocess@boost@ @ position={...}, const main::__l3::ClassWithList & x=) Line 1107 C++ BoostTest.exe!?push_back@?$vector@VClassWithList@?2?main@V?$allocator@VClass WithList@?2?main@V?$segment_manager@DV?$rbtree_best_fit@Umutex_family@interp rocess@boost@@V?$offset_ptr@X@23@$0A@@interprocess@boost@@Viset_index@23@@in terprocess@boost@@@interprocess@boost@@@interprocess@boost@@QAEXABVClassWith List@?2??main@@9@@Z(const main::__l3::ClassWithList & x=) Line 925 + 0x2d bytes C++ BoostTest.exe!main() Line 59 C++ BoostTest.exe!__tmainCRTStartup() Line 597 + 0x19 bytes C BoostTest.exe!mainCRTStartup() Line 414 C kernel32.dll!_BaseProcessStart@4() + 0x23 bytes