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.
>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
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