Developer information

Enabling AddressSanitizer (for debugging)

Tested compiler: clang-7

cmake options:

-DBUILD_fckit=OFF -DENABLE_FORTRAN=OFF \
-DCMAKE_CXX_FLAGS='-fsanitize=address -fno-omit-frame-pointer' \
-DCMAKE_C_FLAGS='-fsanitize=address -fno-omit-frame-pointer' \
-DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address

create a suppressions file (e.g. as in atlas/tools/lsan.supp)

leak:libomp
leak:libopen-pal
leak:MPI_Init

environment variable:

export LSAN_OPTIONS=suppressions=<path-to-lsan.supp>:fast_unwind_on_malloc=0

In LSAN_OPTIONS, the option fast_unwind_on_malloc=0 is required to get full stacktrace to be able to suppress MPI_Init

Enabling UndefinedBehaviorSanitizer (for debugging)

Tested compiler: clang-7

cmake options:

-DCMAKE_CXX_FLAGS='-fsanitize=undefined -fno-omit-frame-pointer -fno-sanitize-recover=all -fsanitize-blacklist=<path-to-ubsan.blacklist>'

where the blacklist file ubsan.blacklist contains routines or files where no errors should be reported e.g.

src:*/CGAL/Compact_container.h

The third party library CGAL (version 4.9) contains a possible error that we have to suppress.

This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.