← Back to team overview

dolfin team mailing list archive

Re: valgrind + dolfin: BaryCenterQuadrature / CGAL error

 

Anders Logg wrote:
For some reason, it's not possible to run valgrind when DOLFIN is
compiled with CGAL (because of some special trick used in CGAL).

ooops. and there's no trick around it? or other tools to sniff around for memory leaks?

Andre Massing might explain in more detail.

--
Anders


On Tue, Aug 10, 2010 at 03:03:16PM +0200, Patrick Riesen wrote:
hello,

do you use valgrind on dolfin examples?

im on revision 4861 (dolfin0.8.8) and if i run valgrind on an example i get

priesen@vierzack01:/<8>cpp>valgrind ./demo
==8028== Memcheck, a memory error detector.
==8028== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==8028== Using LibVEX rev 1854, a library for dynamic binary translation.
==8028== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==8028== Using valgrind-3.3.1-Debian, a dynamic binary
instrumentation framework.
==8028== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==8028== For more details, rerun with: -v
==8028==
terminate called after throwing an instance of 'CGAL::Assertion_exception'
  what():  CGAL ERROR: assertion violation!
Expr: -CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)
File: /scratch/priesen-second/FEniCS/build/include/CGAL/Interval_nt.h
Line: 158
Explanation: Wrong rounding: did you forget the -frounding-math
option if you use GCC?
==8028== Invalid free() / delete / delete[]
==8028==    at 0x4C2130F: free (vg_replace_malloc.c:323)
==8028==    by 0xB31C7AA: (within /lib/libc-2.7.so)
==8028==    by 0xB31C361: __libc_freeres (in /lib/libc-2.7.so)
==8028==    by 0x4A1D31C: _vgnU_freeres (vg_preloaded.c:60)
==8028==    by 0xB24A3F2: abort (in /lib/libc-2.7.so)
==8028==    by 0xAB0B7EA: __gnu_cxx::__verbose_terminate_handler()
(in
/usr/pack/gcc-4.4.1-sd/amd64-debian-linux4.0/lib/libstdc++.so.6.0.12)
==8028==    by 0xAB08A27: __cxxabiv1::__terminate(void (*)()) (in
/usr/pack/gcc-4.4.1-sd/amd64-debian-linux4.0/lib/libstdc++.so.6.0.12)
==8028==    by 0xAB08A4F: std::terminate() (in
/usr/pack/gcc-4.4.1-sd/amd64-debian-linux4.0/lib/libstdc++.so.6.0.12)
==8028==    by 0xAB08C67: __cxa_throw (in
/usr/pack/gcc-4.4.1-sd/amd64-debian-linux4.0/lib/libstdc++.so.6.0.12)
==8028==    by 0x7F4EB49: CGAL::assertion_fail(char const*, char
const*, int, char const*) (in
/scratch/priesen-second/FEniCS/build/lib/libCGAL.so.5.0.0)
==8028==    by 0x511EA6C: _GLOBAL__I_BarycenterQuadrature.cpp
(Interval_nt.h:157)
==8028==    by 0x5146225: (within
/scratch/priesen-second/FEniCS/build/lib/libdolfin.so.0.9.8)
==8028==  Address 0x41c84a8 is not stack'd, malloc'd or (recently) free'd
==8028==
==8028== ERROR SUMMARY: 4 errors from 1 contexts (suppressed: 8 from 1)
==8028== malloc/free: in use at exit: 6,914 bytes in 36 blocks.
==8028== malloc/free: 58 allocs, 26 frees, 9,182 bytes allocated.
==8028== For counts of detected errors, rerun with: -v
==8028== searching for pointers to 36 not-freed blocks.
==8028== checked 3,359,888 bytes.
==8028==
==8028== LEAK SUMMARY:
==8028==    definitely lost: 0 bytes in 0 blocks.
==8028==      possibly lost: 753 bytes in 8 blocks.
==8028==    still reachable: 6,161 bytes in 28 blocks.
==8028==         suppressed: 0 bytes in 0 blocks.
==8028== Rerun with --leak-check=full to see details of leaked memory.
Abort

i can get past this even if i try to generate a suppression file
from valgrind using -gen-suppressions / -suppressions=file.

do you get this as well?

greetings,
patrick

_______________________________________________
Mailing list: https://launchpad.net/~dolfin
Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~dolfin
More help   : https://help.launchpad.net/ListHelp




Follow ups

References