|
Ublas : |
From: Peter Schmitteckert (peter_at_[hidden])
Date: 2005-08-23 03:28:50
Dear All,
currentliy I'm fighting with the problem,
that with my code which runs fine on several
platforms and survives valgrinds memcheck
on ia32, I get a
*** glibc detected *** free(): invalid pointer: 0x101c5308 ***
on a debian PowerPC Linux running on a Power5 smp machine.
I've traced down the problem to a resize of an hermitian double matrix,
with Boost 1_33, using gcc 3.3, 3.4 and 4.0.1,
where the default preserve=true is used.
Note, that the code runs fine under AIX on a Power4+ machine using gcc
3.2, and it runs fine with Boost 1_32 on the same Power5.
The actually error is triggered in
void
deallocate(pointer __p, size_type __n)
{ _Alloc::deallocate(__p, __n * sizeof(_Tp)); }
with
#1 0x10041e10 in ~unbounded_array (this=0xffffbfc4) at storage.hpp:104
Boost/boost_1_33_0/boost/numeric/ublas/storage.hpp:104:3579:beg:0x10041e10
#0 std::allocator<double>::deallocate (this=0xffffbfc4, __p=0x101c5008,
__n=21) at stl_alloc.h:683 /usr/include/c++/3.3/bits/stl_alloc.h:683:22433:beg:0x10041ef0
(gdb) step
*** glibc detected *** corrupted double-linked list: 0x101c50b0 ***
Since remote debugging is a bit painful I'd like to ask,
wether one has already experienced such a problem.
Best wishes,
Peter
_______________________________________
Dr. Peter Schmitteckert
TKM / CFN University of Karlsruhe
++49 721 608 3363