← Back to team overview

dolfin team mailing list archive

Re: valgrind + dolfin: BaryCenterQuadrature / CGAL error

 

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

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

Attachment: signature.asc
Description: Digital signature


Follow ups

References