[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