llvm-project/compiler-rt/lib/asan
Maxim Ostapenko 6dccd5bc1f [asan] Bail out on stack overflow in recovery mode.
In recovery mode, when ASan detects stack overflow (say, when infinite recursion detected),
it tries to continue program execution and hangs on repetitive error reports. There isn't any
sense to do it, we can just bail out on stack overflow error, because the program would crash soon anyway.

Differential Revision: http://reviews.llvm.org/D19958

llvm-svn: 268713
2016-05-06 07:09:22 +00:00
..
scripts For the asan_symbolize.py script, use addr2line as the default system 2015-12-29 21:36:34 +00:00
tests [ASan] Add shadow offset for SystemZ. 2016-04-30 10:02:12 +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 [cmake] Address Samsonov's post-commit review of r262723 2016-03-05 10:01:04 +00:00
README.txt [ASan] Fix the links to bugs and wikipages. 2015-12-04 17:37:40 +00:00
asan.syms.extra [ASan] ASan can be combined with LSan and UBSan, so export symbol from them as well. 2013-10-23 15:36:22 +00:00
asan_activation.cc [sanitizier] initializing common flags. 2016-03-21 20:53:20 +00:00
asan_activation.h [ASan] Change activation strategy. 2014-12-19 20:35:53 +00:00
asan_activation_flags.inc [asan] Allow changing verbosity in activation flags. 2015-01-20 13:21:20 +00:00
asan_allocator.cc [asan] Assert in __sanitizer_ptr_{sub,cmp} if one of the pointers was freed. 2016-04-29 20:37:34 +00:00
asan_allocator.h [asan] Assert in __sanitizer_ptr_{sub,cmp} if one of the pointers was freed. 2016-04-29 20:37:34 +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 [compiler-rt] Apply modernize-use-nullptr fixes in sanitizers 2015-10-01 00:22:21 +00:00
asan_fake_stack.cc [compiler-rt] Fix build (again) by wrapping lines to 80 chars (NFC) 2015-10-01 02:15:40 +00:00
asan_fake_stack.h Revert "Apply modernize-use-default to compiler-rt." 2015-10-30 18:52:31 +00:00
asan_flags.cc [sanitizer] Add strchr* to the common interceptors 2016-03-21 21:36:17 +00:00
asan_flags.h [Sanitizer] Change InitializeFlags() signatures. NFC. 2015-02-12 00:36:42 +00:00
asan_flags.inc [sanitizer] Add memset, memmove, and memcpy to the common interceptors 2016-03-25 19:33:45 +00:00
asan_globals.cc [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +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 [sanitizers] Get the proper symbol version when long double transition is involved. 2016-04-27 21:24:21 +00:00
asan_interceptors.h [asan] Add __strdup interceptor. 2016-04-20 22:45:23 +00:00
asan_interface_internal.h [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_internal.h [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_linux.cc [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_lock.h asan/tsan: move blocking mutex from asan to sanitizer_common 2013-01-14 07:51:39 +00:00
asan_mac.cc [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_malloc_linux.cc [Sanitizer] Pass proper values to DTLS_on_libc_memalign. 2016-01-14 00:04:37 +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 [asan] Intercept all Heap* related imports from ucrtbase.dll 2016-03-24 20:19:48 +00:00
asan_mapping.h [ASan] Add shadow offset for SystemZ. 2016-04-30 10:02:12 +00:00
asan_new_delete.cc [asan] Export new and delete operators on Windows 2016-03-23 20:45:52 +00:00
asan_poisoning.cc [ASan] Fix the links to bugs and wikipages. 2015-12-04 17:37:40 +00:00
asan_poisoning.h Add descriptive names to sanitizer entries in /proc/self/maps. Helps debugging. 2015-05-29 22:31:28 +00:00
asan_posix.cc [asan] [SystemZ] Add slop for stack address detection. 2016-04-18 09:01:19 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc [asan] Bail out on stack overflow in recovery mode. 2016-05-06 07:09:22 +00:00
asan_report.h [asan] Prefer alloc-dealloc-mismatch to new-delete-type-mismatch. 2016-04-13 21:04:27 +00:00
asan_rtl.cc [sanitizer] [SystemZ] Abort if the kernel might be vulnerable to CVE-2016-2143. 2016-04-27 17:42:00 +00:00
asan_scariness_score.h [asan] fix the Windows build (MSVC says: cannot specify explicit initializer for arrays) 2016-02-08 19:33:36 +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 Revert "[LSAN] Fix test swapcontext.cc on MIPS" 2016-04-22 14:56:30 +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 [scan-build] fix logic error warning emitted on compiler-rt code base 2016-05-02 19:07:20 +00:00
asan_suppressions.h [asan] add suppressions for odr violations 2015-02-25 00:49:12 +00:00
asan_thread.cc [LSan] Use __tls_get_addr interceptor to keep track of dynamic TLS. 2016-01-14 18:50:09 +00:00
asan_thread.h [LSan] Use __tls_get_addr interceptor to keep track of dynamic TLS. 2016-01-14 18:50:09 +00:00
asan_win.cc [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_win_dll_thunk.cc [asan] Intercept strdup on Windows 2016-03-22 00:52:47 +00:00
asan_win_dynamic_runtime_thunk.cc Wrap 81 character line to satisfy linter 2016-03-22 00:53:04 +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