[cmake-developers] Fw: CTest and Address Sanitizer

Chuck Atkins chuck.atkins at kitware.com
Thu Jan 5 14:47:13 EST 2017


Hi Karl,

>> I believe that the AddressSanitizer should normally stop with a non-zero
> error code right after the first error.
>
> I have many tests within each executable test application, forcing the
> application to exit on the first error is not optimal since it means I
> cannot get an overview of all the issues and triage/fix them in logical
> order. Instead I have to test/fix/retest every time
>


That's by design and isn't to do with how CMake integrates asan; i.e. it's
just how asan works.  The idea being that once you hit a memory corruption
then any further results can't be relied on.  From the asan documentation:
http://clang.llvm.org/docs/AddressSanitizer.html

"If a bug is detected, the program will print an error message to stderr
and exit with a non-zero exit code. AddressSanitizer exits on the first
detected error. This is by design:

   - This approach allows AddressSanitizer to produce faster and smaller
   generated code (both by ~5%).
   - Fixing bugs becomes unavoidable. AddressSanitizer does not produce
   false alarms. Once a memory corruption occurs, the program is in an
   inconsistent state, which could lead to confusing results and potentially
   misleading subsequent reports.

"

- Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20170105/73bf29a5/attachment.html>


More information about the cmake-developers mailing list