On 8/26/06, Paul Davis <pjdavis@engineering.uiowa.edu> wrote:

(gdb) bt
#0  0x000000000040a2f8 in boost::detail::atomic_exchange_and_add
(pw=0x98, dv=-1) at sp_counted_base_gcc_x86.hpp:50
#1  0x000000000040a46c in boost::detail::sp_counted_base::release
(this=0x90) at sp_counted_base_gcc_x86.hpp:143

Ah, the this pointer is off in la-la land here (0x90).

#2  0x000000000040a4d0 in ~shared_count (this=0x2514218) at
shared_count.hpp:159

which means the pi_ pointer, an sp_counted_base, got messed up.

#3  0x00002aaaaccb849b in ~shared_ptr (this=0x2514210) at shared_ptr.hpp:106
#4  0x00002aaaaccb88e1 in
__gnu_cxx::new_allocator<boost::shared_ptr<min_heap> >::destroy
(this=0x7fffffc2b410, __p=0x2514210)
    at new_allocator.h:107
#5  0x00002aaaaccb9f66 in std::vector<boost::shared_ptr<min_heap>,
std::allocator<boost::shared_ptr<min_heap> > >::erase (
    this=0x7fffffc2b410, __position={_M_current = 0x2514220}) at
vector.tcc:115

Hmm, you're guess is as good as mine.  I couldn't tell you if it is a boost bug or not.  But I would probably spend some more time checking your own code too, to see if maybe you have memory corruption resulting from a buffer overflow or something like that.

Phillip Hellewell