Yep, that was the problem with this issue.... relinked with mpatrolmt
and this issue is not happening...
--- In mpatrol@yahoogroups.com, "Graeme Roy" <graeme_roy@...> wrote:
>
> Hi,
>
> Double-check that you're using the thread-safe version of mpatrol
> (libmpatrolmt). Using the normal version will cause multithreaded
programs
> to fail.
>
> Graeme.
>
> _____
>
> From: mpatrol@yahoogroups.com [mailto:mpatrol@yahoogroups.com] On
Behalf Of
> tcmichals
> Sent: 04 February 2009 20:39
> To: mpatrol@yahoogroups.com
> Subject: [mpatrol] tracing ILLMEM in Boost C++
>
>
>
> I'm trying to figure out what is going on with this trace using the
> latest mpatrol... 1.5.1
>
> ERROR: [ILLMEM]: illegal memory access at address 0xB4C9B4C4
> 0xB4C9B4C4 not in heap
>
> call stack
> 0xB7C861CE __mp_getalloc+190
> 0xB7C887E2 __mp_getmemory+242
> 0xB7C9A5F5 __mp_alloc+421
> 0xB7C9CACD malloc+93
> 0xB7E5265C _ZN5boost6detail25get_once_per_thread_epochEv+92
>
> here is the code, it is only trying to allocate 4 bytes...
>
> boost::uintmax_t& get_once_per_thread_epoch()
> {
>
> BOOST_VERIFY(!pthread_once(&epoch_tss_key_flag,create_epoch_tss_key));
> void* data=pthread_getspecific(epoch_tss_key);
> if(!data)
> {
> data=malloc(sizeof(boost::uintmax_t));
> BOOST_VERIFY(!pthread_setspecific(epoch_tss_key,data));
> *static_cast<boost::uintmax_t*>(data)=UINTMAX_C(~0);
> }
> return *static_cast<boost::uintmax_t*>(data);
> }
>