Boost logo

Boost Users :

Subject: [Boost-users] Exception when constructing empty list in shared memory (boost::interprocess::list)
From: Roland (roland_at_[hidden])
Date: 2008-11-21 18:44:02


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_at_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_at_U?$list_node_at_UListElem@?1?main_at_V?$o
ffset_ptr_at_X@interprocess_at_boost@@@detail_at_interprocess@boost@@V?$segment_manag
er_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@
$0A@@interprocess_at_boost@@Viset_index_at_23@@34@@interprocess_at_boost@@QAE?AV?$tra
nsform_iterator_at_V?$basic_multiallocation_iterator_at_V?$offset_ptr_at_X@interproce
ss_at_boost@@@detail_at_interprocess@boost@@U?$cast_functor_at_U?$list_node_at_UListElem
@?1?main_at_V?$offset_ptr_at_X@interprocess_at_boost@@@detail_at_interprocess@boost@@@23
4@@23_at_II@Z(unsigned int elem_size=0x00000001, unsigned int
num_elements=0x00000000) Line 195 + 0x30 bytes C++
 
        
BoostTest.exe!?allocate_individual@?$allocator_at_U?$list_node_at_UListElem@?1?mai
n_at_V?$offset_ptr_at_X@interprocess_at_boost@@@detail_at_interprocess@boost@@V?$segment
_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr
@X_at_23@$0A@@interprocess_at_boost@@Viset_index_at_23@@34@@interprocess_at_boost@@QAE?A
V?$transform_iterator_at_V?$basic_multiallocation_iterator_at_V?$offset_ptr_at_X@inte
rprocess_at_boost@@@detail_at_interprocess@boost@@U?$cast_functor_at_U?$list_node_at_ULi
stElem@?1?main_at_V?$offset_ptr_at_X@interprocess_at_boost@@@detail_at_interprocess@boos
t@@@234@@23_at_I@Z(unsigned int num_elements=0x00000000) Line 229 + 0x3f bytes
C++

 
BoostTest.exe!??$allocate_many_and_construct_at_Vconst_iterator@?$list_at_UListEle
m@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best_
fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_b
oost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interprocess
@boost@@Vinsertion_functor_at_234@@?$node_alloc_holder_at_V?$allocator_at_UListElem@?
1?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boo
st@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess
@boost@@@interprocess_at_boost@@V?$list_impl_at_U?$listopt_at_U?$base_hook_traits_at_U?$
list_node_at_UListElem@?1?main_at_V?$offset_ptr_at_X@interprocess_at_boost@@@detail_at_inte
rprocess_at_boost@@U?$list_node_traits_at_V?$offset_ptr_at_X@interprocess_at_boost@@@int
rusive_at_4@$0A_at_Udefault_tag_at_64@$00_at_detail@intrusive_at_boost@@I$00_at_intrusive@boos
t@@@intrusive_at_3@@detail_at_interprocess@boost@@QAE?AVconst_iterator@?$list_at_ULis
tElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_b
est_fit_at_Umutex_family_at_interprocess@boost@@V?$offs(boost::interprocess::?$lis
t_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rb
tree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@inte
rprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@::c
onst_iterator beg={...}, int n=0x00000000,
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::insertion_functor inserter={...}) Line 304 + 0x17
bytes C++

 
BoostTest.exe!??$priv_create_and_insert_nodes_at_Vconst_iterator@?$list_at_UListEl
em@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best
_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess@
boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interproces
s_at_boost@@@?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment
_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr
@X_at_23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interpro
cess_at_boost@@@interprocess_at_boost@@AAEXVconst_iterator_at_012@00U?$integral_const
ant_at_I$01_at_detail@12_at_Uforward_iterator_tag_at_std@@@Z(boost::interprocess::?$list
@UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbt
ree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@inter
process_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@::co
nst_iterator pos={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator beg={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_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_at_Vconst_iterator@?$list_at_UListEl
em@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best
_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess@
boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interproces
s_at_boost@@@?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment
_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr
@X_at_23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interpro
cess_at_boost@@@interprocess_at_boost@@AAEXVconst_iterator_at_012@00_at_Z(boost::interpr
ocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_ma
nager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@
23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interproces
s_at_boost@@::const_iterator pos={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator beg={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator end={...}) Line 1246 C++

 
BoostTest.exe!??$priv_insert_dispatch_at_Vconst_iterator@?$list_at_UListElem@?1?ma
in_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umu
tex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@V
iset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@
@@?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager
@DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0
A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boo
st@@@interprocess_at_boost@@AAEXVconst_iterator_at_012@00U?$bool_@$0A@@detail_at_12@@
Z(boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?ma
in_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@
V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boo
st@@@interprocess_at_boost@@::const_iterator p={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator first={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator last={...},
boost::interprocess::detail::bool_<0> __formal={...}) Line 1310 C++

 
BoostTest.exe!??$insert_at_Vconst_iterator@?$list_at_UListElem@?1?main_at_V?$allocato
r_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_int
erprocess_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@
@interprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@@?$list_at_UList
Elem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_be
st_fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interproces
s_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interproc
ess_at_boost@@QAEXVconst_iterator_at_012@00_at_Z(boost::interprocess::?$list_at_UListEle
m@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$segment_manager_at_DV?$rbtree_best_
fit_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_b
oost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@::const_itera
tor p={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator first={...},
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@::const_iterator last={...}) Line 795 C++

 
BoostTest.exe!??0?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main_at_V?$
segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?$off
set_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost@@@i
nterprocess_at_boost@@@interprocess_at_boost@@QAE_at_ABV012@@Z(const
boost::interprocess::?$list_at_UListElem@?1?main_at_V?$allocator_at_UListElem@?1?main
@V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boost@@V?
$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess_at_boost
@@@interprocess_at_boost@@ & x={...}) Line 364 + 0xcf bytes C++

         BoostTest.exe!`main'::`3'::ClassWithList::ClassWithList(const
main::__l3::ClassWithList & __that=) + 0x2f bytes C++

 
BoostTest.exe!??$_Construct_at_VClassWithList@?2?main_at_V1?2?main@@std@@YAXPAVCla
ssWithList@?2??main@@9_at_ABV1?2??2_at_9@@Z(main::__l3::ClassWithList *
_Ptr=0x003700a0, const main::__l3::ClassWithList & _Val=) Line 53 + 0x33
bytes C++

 
BoostTest.exe!??$_Uninit_copy_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@
interprocess_at_boost@@PAVClassWithList@?2?main@@std@@YAPAVClassWithList@?2??ma
in@@9_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@interprocess_at_boost@@0PAV
1?2??2_at_9@U_Nonscalar_ptr_iterator_tag_at_0@U_Range_checked_iterator_tag_at_0@@Z(bo
ost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
_First={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_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_at_V?$constant_iterator_at_VClassWithList@?2?m
ain_at_H@interprocess_at_boost@@PAVClassWithList@?2?main@@std@@YAPAVClassWithList@
?2??main@@9_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@interprocess_at_boost
@@0PAV1?2??2_at_9@@Z(boost::interprocess::?$constant_iterator_at_VClassWithList@?2
?main_at_H _First={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
_Last={...}, main::__l3::ClassWithList * _Dest=0x003700a0) Line 102 + 0x85
bytes C++

 
BoostTest.exe!?uninitialized_copy_all_to@?$advanced_insert_aux_proxy_at_VClassW
ithList@?2?main_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@interprocess_at_b
oost@@PAV1?2?main@@detail_at_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_at_VClassWithList@?2?m
ain_at_V?$allocator_at_VClassWithList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_f
it_at_Umutex_family_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_bo
ost@@Viset_index_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interprocess@
boost@@AAEXPAVClassWithList@?2??main@@9_at_I0IAAU?$advanced_insert_aux_int_at_VCla
ssWithList@?2?main_at_PAV1?2?main@@detail_at_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_at_VClassWithList@?2?mai
n_at_PAV1?2?main@ & interf={...}) Line 1440 + 0x19 bytes C++

 
BoostTest.exe!?priv_range_insert@?$vector_at_VClassWithList@?2?main_at_V?$allocato
r_at_VClassWithList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_famil
y_at_interprocess@boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_inde
x_at_23@@interprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@AAEXV?$o
ffset_ptr_at_VClassWithList@?2?main@@23_at_IAAU?$advanced_insert_aux_int_at_VClassWit
hList@?2?main_at_PAV1?2?main@@detail_at_23@@Z(boost::interprocess::?$offset_ptr_at_VC
lassWithList@?2?main@ pos={...}, const unsigned int n=0x00000001,
boost::interprocess::detail::?$advanced_insert_aux_int_at_VClassWithList@?2?mai
n_at_PAV1?2?main@ & interf={...}) Line 1387 C++

 
BoostTest.exe!??$priv_range_insert_at_V?$constant_iterator_at_VClassWithList@?2?ma
in_at_H@interprocess_at_boost@@@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VClas
sWithList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_inter
process_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@i
nterprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@AAEXV?$offset_p
tr_at_VClassWithList@?2?main@@12_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@
12_at_1Uforward_iterator_tag_at_std@@@Z(boost::interprocess::?$offset_ptr_at_VClassWi
thList@?2?main@ pos={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
first={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
last={...}, std::forward_iterator_tag __formal={...}) Line 1319 C++

 
BoostTest.exe!??$priv_insert_dispatch_at_V?$constant_iterator_at_VClassWithList@?2
?main_at_H@interprocess_at_boost@@@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VC
lassWithList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_in
terprocess_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23
@@interprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@AAEXV?$vecto
r_const_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@@@
detail_at_12@V?$constant_iterator_at_VClassWithList@?2?main_at_H@12_at_1U?$bool_@$0A@@41
2@@Z(boost::interprocess::detail::?$vector_const_iterator_at_V?$offset_ptr_at_VCla
ssWithList@?2?main@@interprocess_at_boost@@ pos={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
first={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
last={...}, boost::interprocess::detail::bool_<0> __formal={...}) Line 1925
C++

 
BoostTest.exe!??$insert_at_V?$constant_iterator_at_VClassWithList@?2?main_at_H@interp
rocess_at_boost@@@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VClassWithList@?
2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interprocess@boo
st@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@interprocess
@boost@@@interprocess_at_boost@@@interprocess_at_boost@@QAEXV?$vector_const_iterat
or_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@@@detail_at_12@V?$c
onstant_iterator_at_VClassWithList@?2?main_at_H@12_at_1@Z(boost::interprocess::detail
::?$vector_const_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess
@boost@@ pos={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
first={...},
boost::interprocess::?$constant_iterator_at_VClassWithList@?2?main_at_H
last={...}) Line 1149 C++

 
BoostTest.exe!?insert@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VClassWit
hList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interproc
ess_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@inter
process_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@QAEXV?$vector_const
_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@@@detail@
23_at_IABVClassWithList@?2??main@@9@@Z(boost::interprocess::detail::?$vector_co
nst_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@@
p={...}, unsigned int n=0x00000001, const main::__l3::ClassWithList & x=)
Line 1159 + 0xc3 bytes C++

 
BoostTest.exe!?insert@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VClassWit
hList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interproc
ess_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@inter
process_at_boost@@@interprocess_at_boost@@@interprocess_at_boost@@QAE?AV?$vector_iter
ator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@@@detail_at_23@V?
$vector_const_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_bo
ost@@@523_at_ABVClassWithList@?2??main@@9@@Z(boost::interprocess::detail::?$vec
tor_const_iterator_at_V?$offset_ptr_at_VClassWithList@?2?main@@interprocess_at_boost@
@ position={...}, const main::__l3::ClassWithList & x=) Line 1107 C++

 
BoostTest.exe!?push_back@?$vector_at_VClassWithList@?2?main_at_V?$allocator_at_VClass
WithList@?2?main_at_V?$segment_manager_at_DV?$rbtree_best_fit_at_Umutex_family_at_interp
rocess_at_boost@@V?$offset_ptr_at_X@23@$0A@@interprocess_at_boost@@Viset_index_at_23@@in
terprocess_at_boost@@@interprocess_at_boost@@@interprocess_at_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_at_4() + 0x23 bytes


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net