llvm-project/compiler-rt/lib/asan
Francis Ricci 8187c7b06b Add cmake build support for lsan on OS X
Summary:
Adds a new cmake flag 'COMPILER_RT_ENABLE_LSAN_OSX', which enables lsan
compilation and is turned off by default. Patches to fix build errors
when this flag is enabled will be uploaded soon.

This is part of an effort to port LSan to OS X, but LSan on OS X does not
currently work or pass tests currently.

Reviewers: kubamracek, kcc, glider, alekseyshl

Reviewed By: kubamracek

Subscribers: danalbert, srhines, mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D29783

llvm-svn: 295012
2017-02-14 00:56:53 +00:00
..
scripts asan_symbolize.py: [Py3] Get rid of "print" statement. Use print() or write() instead. 2017-02-08 14:07:39 +00:00
tests [asan] Remove `using std::vector` and `using std::map` 2017-02-06 17:28:05 +00:00
.clang-format Tell clang-format that (most) sanitizers are written using Google style guide. 2015-11-19 22:11:10 +00:00
CMakeLists.txt Add cmake build support for lsan on OS X 2017-02-14 00:56:53 +00:00
README.txt [ASan] Fix the links to bugs and wikipages. 2015-12-04 17:37:40 +00:00
asan.syms.extra [asan] Export __sancov_* symbols symbols. 2017-01-31 20:23:07 +00:00
asan_activation.cc ASAN activate/deactive controls thread_local_quarantine_size_kb option. 2017-01-12 18:51:25 +00:00
asan_activation.h [ASan] Change activation strategy. 2014-12-19 20:35:53 +00:00
asan_activation_flags.inc ASAN activate/deactive controls thread_local_quarantine_size_kb option. 2017-01-12 18:51:25 +00:00
asan_allocator.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_allocator.h Improved ASAN allocator and quarantine stats. 2017-01-05 22:17:53 +00:00
asan_blacklist.txt Ignore stack-buffer-overflow in std::_Find_elem<*> / std::num_get<...>::_Getifld 2014-05-07 14:40:23 +00:00
asan_debugging.cc [asan] Add a new AddressDescription structure, which can describe any type of address. 2016-09-09 20:43:20 +00:00
asan_descriptions.cc [asan] Fix GlobalAddressDescription::Print() 2016-09-20 20:33:18 +00:00
asan_descriptions.h [asan] Reify ErrorGeneric 2016-09-21 20:18:18 +00:00
asan_errors.cc [sanitizer] Move DescribeSignalOrException to sanitizer_common. 2017-02-02 23:01:59 +00:00
asan_errors.h [asan] Provide bug descriptions for all reports (not just ErrorGeneric) 2016-11-28 21:18:15 +00:00
asan_fake_stack.cc fix random typos [NFC] 2016-08-05 18:49:08 +00:00
asan_fake_stack.h fix random typos [NFC] 2016-08-05 18:49:08 +00:00
asan_flags.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_flags.h [Sanitizer] Change InitializeFlags() signatures. NFC. 2015-02-12 00:36:42 +00:00
asan_flags.inc Expose thread local quarantine size as ASAN option. 2016-12-22 21:43:22 +00:00
asan_globals.cc [asan/win] Skip incremental linker padding during unregistration 2016-11-23 18:28:04 +00:00
asan_globals_win.cc [sanitizer] Split dll_thunks into different sanitizers. 2017-02-02 23:01:28 +00:00
asan_init_version.h [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_interceptors.cc [compiler-rt] Move logic which replace memcpy interceptor with memmove from asan to sanitizer_common. 2016-12-27 21:13:11 +00:00
asan_interceptors.h [asan] Add __strdup interceptor. 2016-04-20 22:45:23 +00:00
asan_interface.inc [sanitizer] Add list of symbols exported in sanitizers' interface. 2017-01-31 20:23:21 +00:00
asan_interface_internal.h [sanitizer] Add list of symbols exported in sanitizers' interface. 2017-01-31 20:23:21 +00:00
asan_internal.h [sanitizer] Move DescribeSignalOrException to sanitizer_common. 2017-02-02 23:01:59 +00:00
asan_linux.cc [asan] Add exception handler to map memory on demand on Win64. 2016-07-11 21:40:59 +00:00
asan_lock.h
asan_mac.cc [tsan] Properly describe GCD worker threads in reports 2017-02-02 12:54:21 +00:00
asan_malloc_linux.cc Recommit: Stop intercepting some malloc-related functions on FreeBSD and 2017-01-30 19:06:13 +00:00
asan_malloc_mac.cc [ASan] Retire mac_ignore_invalid_free, remove some dead code. 2015-12-04 16:17:55 +00:00
asan_malloc_win.cc Recommit: Stop intercepting some malloc-related functions on FreeBSD and 2017-01-30 19:06:13 +00:00
asan_mapping.h [asan] Reapply: Switch to using dynamic shadow offset on iOS 2016-10-05 20:33:59 +00:00
asan_memory_profile.cc Improved ASAN allocator and quarantine stats. 2017-01-05 22:17:53 +00:00
asan_new_delete.cc [asan] Add C++17 aligned new/delete entrypoints. Patch by Jakub Jelinek, see https://reviews.llvm.org/D24771 2016-09-20 21:27:10 +00:00
asan_poisoning.cc Release memory to OS only when the requested range covers the entire page 2016-11-30 20:41:59 +00:00
asan_poisoning.h Release memory to OS only when the requested range covers the entire page 2016-11-30 20:41:59 +00:00
asan_posix.cc [sanitizer] Move DescribeSignalOrException to sanitizer_common. 2017-02-02 23:01:59 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_report.h [asan] Add a new AddressDescription structure, which can describe any type of address. 2016-09-09 20:43:20 +00:00
asan_rtl.cc [sanitizer] Add a 'print_module_map' flag which prints modules with UUIDs on Darwin 2017-01-06 20:57:47 +00:00
asan_scariness_score.h Split ScarinessScore between its "storage" (POD), and an initializing object. 2016-08-30 17:08:47 +00:00
asan_stack.cc [ASan] Allow to atomically modify malloc_context_size at runtime. 2014-12-16 01:23:03 +00:00
asan_stack.h [LSAN] Fix test swapcontext.cc on MIPS 2016-05-18 06:09:26 +00:00
asan_stats.cc [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_stats.h [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_suppressions.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_suppressions.h [asan] add suppressions for odr violations 2015-02-25 00:49:12 +00:00
asan_thread.cc [tsan] Properly describe GCD worker threads in reports 2017-02-02 12:54:21 +00:00
asan_thread.h [ASAN] Pass previous stack information through __sanitizer_finish_switch_fiber 2016-09-28 12:28:16 +00:00
asan_win.cc [asan] Intercept SetUnhandledExceptionFilter. 2017-02-02 23:02:04 +00:00
asan_win_dll_thunk.cc [sanitizer] Intercept weak functions in dll_thunks. 2017-02-02 23:01:34 +00:00
asan_win_dynamic_runtime_thunk.cc [sanitizer] Add dynamic_runtime_thunk for different sanitizers. 2017-02-02 23:01:41 +00:00
asan_win_weak_interception.cc [sanitizer] Use interception to access to strong definitions in the executable. 2017-02-02 23:02:11 +00:00
weak_symbols.txt Enable weak hooks on darwin 2017-01-09 03:51:42 +00:00

README.txt

AddressSanitizer RT
================================
This directory contains sources of the AddressSanitizer (ASan) runtime library.

Directory structure:
README.txt       : This file.
Makefile.mk      : File for make-based build.
CMakeLists.txt   : File for cmake-based build.
asan_*.{cc,h}    : Sources of the asan runtime library.
scripts/*        : Helper scripts.
tests/*          : ASan unit tests.

Also ASan runtime needs the following libraries:
lib/interception/      : Machinery used to intercept function calls.
lib/sanitizer_common/  : Code shared between various sanitizers.

ASan runtime currently also embeds part of LeakSanitizer runtime for
leak detection (lib/lsan/lsan_common.{cc,h}).

ASan runtime can only be built by CMake. You can run ASan tests
from the root of your CMake build tree:

make check-asan

For more instructions see:
https://github.com/google/sanitizers/wiki/AddressSanitizerHowToBuild