**** Purify instrumented ./21.string.append (pid 21016 at Tue Oct 23 17:14:54 2007) * Purify 7.0 Linux (32-bit) (C) Copyright IBM Corporation. 1992, 2006 All Rights Reserved. * For contact information type: "purify -help" * Options settings: -linker=/package/1/utils/binutils-2.15.92.0.2-21/bin/ld \ -purify -windows=no -log-file=21.string.append.log \ -view-file=21.string.append.view \ -purify-home=/nfs/packages/mdx/rhas/utils/purifyplus/7.0/releases/purify.i386_linux2.7.0 \ -gcc3_path=/package/1/compilers/gcc-3.4.6-3/bin/gcc \ -cache-dir=/nfs/packages/mdx/rhas/utils/purifyplus/7.0/releases/purify.i386_linux2.7.0/cache \ -hw_cap=yes * License successfully checked out. * Command-line: ./21.string.append --compat -O - **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(char&, char const&) [_traits.h:385] std::string, std::allocator>& std::string, std::allocator>::replace>(__rw::__rw_debug_iter, std::allocator>, char*, ch... [string.cc:533] std::string, std::allocator>& std::string, std::allocator>::replace>(__rw::__rw_debug_iter, std::allocator>, char*, ch... [string:609] std::string, std::allocator>& std::string, std::allocator>::append>(InputIter, InputIter, *) [string:319] std::string, std::allocator>& std::string, std::allocator>::append>(InputIter, InputIter) [string:314] AppendRange, std::allocator>, InputIter >::operator ()(std::string, std::allocator>&, StringTestCaseData const&) const [21.string.append.cpp:514] * Reading 1 byte from 0x840158d in the heap. * Address 0x840158d is 37 bytes into a freed block at 0x8401568 of 78 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] operator new(unsigned) [rw_new.h:168] __rw::__rw_allocate(unsigned, int) [memory.cpp:53] std::allocator::allocate(unsigned, const*) [_allocator.h:144] std::string, std::allocator>::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(char*, unsigned) [_allocator.h:157] std::string, std::allocator>::_C_unlink(char*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(char&, char const&) [_traits.h:385] std::string, std::allocator>& std::string, std::allocator>::replace>(__rw::__rw_debug_iter, std::allocator>, char*,... [string.cc:533] std::string, std::allocator>& std::string, std::allocator>::replace>(__rw::__rw_debug_iter, std::allocator>, char*,... [string:609] std::string, std::allocator>& std::string, std::allocator>::append>(ConstFwdIter, ConstFwdIter, *) [string:319] std::string, std::allocator>& std::string, std::allocator>::append>(ConstFwdIter, ConstFwdIter) [string:314] AppendRange, std::allocator>, ConstFwdIter >::operator ()(std::string, std::allocator>&, StringTestCaseData const&) const [21.string.append.cpp:514] * Reading 1 byte from 0x8403665 in the heap. * Address 0x8403665 is 37 bytes into a freed block at 0x8403640 of 78 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] operator new(unsigned) [rw_new.h:168] __rw::__rw_allocate(unsigned, int) [memory.cpp:53] std::allocator::allocate(unsigned, const*) [_allocator.h:144] std::string, std::allocator>::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(char*, unsigned) [_allocator.h:157] std::string, std::allocator>::_C_unlink(char*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(char&, char const&) [_traits.h:385] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >, InputIter >::operator ()(std::basic_string, std::allocator><... [21.string.append.cpp:514] * Reading 1 byte from 0x8424bcd in the heap. * Address 0x8424bcd is 37 bytes into a freed block at 0x8424ba8 of 78 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] SharedAlloc::allocate(unsigned, unsigned, const*) [allocator.cpp:118] UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](char const*, unsigned, UserAlloc<... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(char*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(char*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc::assign(char&, char const&) [_traits.h:385] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >, ConstFwdIter >::operator ()(std::basic_string, std::allocator >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](char const*, unsigned, UserAlloc<... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(char*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(char*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc::assign(char&, char const&) [_traits.h:385] UserTraits::assign(char&, char const&) [char.cpp:46] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::replace, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::replace, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::append, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::append::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(char*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(char*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(char&, char const&) [_traits.h:385] UserTraits::assign(char&, char const&) [char.cpp:46] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::replace, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::replace, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::append, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator >::append::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(char*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(char*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(char&, char const&) [_traits.h:385] UserTraits::assign(char&, char const&) [char.cpp:46] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](char const*, unsigned, UserAlloc >::deallocate(char*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(char*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc::assign(char&, char const&) [_traits.h:385] UserTraits::assign(char&, char const&) [char.cpp:46] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](char const*, unsigned, UserAlloc >::deallocate(char*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(char*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAlloc::assign(wchar_t&, wchar_t const&) [_traits.h:472] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string.cc:533] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:609] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:319] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:314] AppendRange, std::allocator>, std::allocator >, InputIter >::operator ()(std::basic_string, std::allocator>::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(wchar_t*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(wchar_t*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(wchar_t&, wchar_t const&) [_traits.h:472] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string.cc:533] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:609] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:319] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocat... [string:314] AppendRange, std::allocator>, std::allocator >, ConstFwdIter >::operator ()(std::basic_string, std::allocator>... [21.string.append.cpp:514] * Reading 4 bytes from 0x84b85a0 in the heap. * Address 0x84b85a0 is 40 bytes into a freed block at 0x84b8578 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] operator new(unsigned) [rw_new.h:168] __rw::__rw_allocate(unsigned, int) [memory.cpp:53] std::allocator::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(wchar_t*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(wchar_t*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(wchar_t&, wchar_t const&) [_traits.h:472] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >, InputIter >::operator ()(std::basic_string, std::al... [21.string.append.cpp:514] * Reading 4 bytes from 0x84dfa00 in the heap. * Address 0x84dfa00 is 40 bytes into a freed block at 0x84df9d8 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] SharedAlloc::allocate(unsigned, unsigned, const*) [allocator.cpp:118] UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](wchar_t const*, unsig... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(wchar_t*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(wchar_t*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>::assign(wchar_t&, wchar_t const&) [_traits.h:472] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, std::allocator>, UserAlloc > >, ConstFwdIter >::operator ()(std::basic_string, std:... [21.string.append.cpp:514] * Reading 4 bytes from 0x84cc268 in the heap. * Address 0x84cc268 is 40 bytes into a freed block at 0x84cc240 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] SharedAlloc::allocate(unsigned, unsigned, const*) [allocator.cpp:118] UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](wchar_t const*, unsig... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(wchar_t*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(wchar_t*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>::assign(wchar_t&, wchar_t const&) [_traits.h:472] UserTraits::assign(wchar_t&, wchar_t const&) [char.cpp:176] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string.cc:533] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:609] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:319] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:314] * Reading 4 bytes from 0x8509118 in the heap. * Address 0x8509118 is 40 bytes into a freed block at 0x85090f0 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] operator new(unsigned) [rw_new.h:168] __rw::__rw_allocate(unsigned, int) [memory.cpp:53] std::allocator::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(wchar_t*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(wchar_t*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(wchar_t&, wchar_t const&) [_traits.h:472] UserTraits::assign(wchar_t&, wchar_t const&) [char.cpp:176] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string.cc:533] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:609] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:319] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator ... [string:314] * Reading 4 bytes from 0x8525d40 in the heap. * Address 0x8525d40 is 40 bytes into a freed block at 0x8525d18 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] operator new(unsigned) [rw_new.h:168] __rw::__rw_allocate(unsigned, int) [memory.cpp:53] std::allocator::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(wchar_t*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(wchar_t*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(wchar_t&, wchar_t const&) [_traits.h:472] UserTraits::assign(wchar_t&, wchar_t const&) [char.cpp:176] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string.cc:533] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:609] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:319] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:314] * Reading 4 bytes from 0x8562cf8 in the heap. * Address 0x8562cf8 is 40 bytes into a freed block at 0x8562cd0 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] SharedAlloc::allocate(unsigned, unsigned, const*) [allocator.cpp:118] UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](wchar_t const*, unsigned, U... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(wchar_t*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(wchar_t*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string.cc:527] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: std::char_traits::assign(wchar_t&, wchar_t const&) [_traits.h:472] UserTraits::assign(wchar_t&, wchar_t const&) [char.cpp:176] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string.cc:533] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:609] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:319] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string:314] * Reading 4 bytes from 0x85394e8 in the heap. * Address 0x85394e8 is 40 bytes into a freed block at 0x85394c0 of 180 bytes. * This block was allocated from thread -1207973632: malloc [rtlib.o] operator_new(unsigned, bool) [new.cpp:413] SharedAlloc::allocate(unsigned, unsigned, const*) [allocator.cpp:118] UserAlloc >::allocate(unsigned, const*) [rw_allocator.h:200] std::basic_string, std::allocator>, UserAlloc > >::_C_get_rep(unsigned, unsigned) [string.cc:102] std::basic_string, std::allocator>, UserAlloc > >::basic_string, std::allocator>[not-in-charge](wchar_t const*, unsigned, U... [string.cc:180] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] SharedAlloc::deallocate(*, unsigned, unsigned) [allocator.cpp:127] UserAlloc >::deallocate(wchar_t*, unsigned) [rw_allocator.h:205] std::basic_string, std::allocator>, UserAlloc > >::_C_unlink(wchar_t*) [string:911] std::basic_string, std::allocator>, UserAlloc > >& std::basic_string, std::allocator>, UserAll... [string.cc:527] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: UserTraits::assign(UserChar&, UserChar const&) [char.cpp:313] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >, InputIter >::operator ()(std::basic_string, std::allocator>::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(UserChar*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(UserChar*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: UserTraits::assign(UserChar&, UserChar const&) [char.cpp:313] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >, InputIter >::operator ()(std::basic_string, std::allocator>::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(UserChar*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(UserChar*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: UserTraits::assign(UserChar&, UserChar const&) [char.cpp:313] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >, InputIter >::operator ()(std::basic_string, std::allocator>::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(UserChar*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(UserChar*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** FMR: Free memory read: * This is occurring while in thread 21016: UserTraits::assign(UserChar&, UserChar const&) [char.cpp:314] std::basic_string, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >& std::basic_string, std::allocator>, std::allocator, std::allocator>, std::allocator >, InputIter >::operator ()(std::basic_string, std::allocator>::allocate(unsigned, const*) [_allocator.h:144] std::basic_string, std::allocator>, std::allocator >::_C_get_rep(unsigned, unsigned) [string.cc:102] * There have been 0 frees since this block was freed from thread 21016: free [rtlib.o] operator_delete(*, bool) [new.cpp:585] _ZdLpV [rw_new.h:173] __rw::__rw_deallocate(*, unsigned, int) [memory.cpp:81] std::allocator::deallocate(UserChar*, unsigned) [_allocator.h:157] std::basic_string, std::allocator>, std::allocator >::_C_unlink(UserChar*) [string:911] **** Purify instrumented ./21.string.append (pid 21016) **** SIG: Signal handled: * This is occurring while in thread 21016: _p1881static [rtlib.o] dl_iterate_phdr [libc.so.6] _Unwind_Find_FDE [libgcc_s.so.1] *unknown func* [pc=0x7f4d80] *unknown func* [pc=0x7f68bc] _Unwind_RaiseException [libgcc_s.so.1] * Received signal 1 (SIGHUP - Hangup) * Handler function: SIG_DFL * Signal mask: (SIGHUP | SIGINT | SIGQUIT | SIGILL | SIGABRT | \ SIGBUS | SIGKILL | SIGALRM | SIGTERM | SIGSTP | SIGTTIN | SIGTTOU | \ SIGURG) * Pending signals: