llvm-project/compiler-rt/lib/asan
Reid Kleckner c696467530 Avoid re-entrancy between __sanitizer::Report, OutputDebugString, and RtlRaiseException
Our Report implementation calls OutputDebugString, which calls
RtlRaiseException, which can re-enter back into the ASan runtime and
cause a hang.

Don't treat this special debugger-only exception code as a noreturn
event, since the stack won't really unwind all the way.

llvm-svn: 277763
2016-08-04 20:05:13 +00:00
..
scripts [asan] Workaround LD_PRELOAD bug in the Android linker. 2016-05-24 21:25:00 +00:00
tests [compiler-rt] Fix warnings in interception code 2016-07-27 16:16:54 +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 missing modifications for http://reviews.llvm.org/D21952 2016-07-11 23:09:33 +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 In asan on Windows 64-bit, this is one of the broken things 2016-06-14 18:05:45 +00:00
asan_allocator.h [asan] add an interface function __sanitizer_print_memory_profile (a basic memory profiler; asan/Linux-only for now) 2016-06-02 01:21:52 +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 [asan] Fix shifting compiler warnings when compiler in 64-bits 2016-06-21 14:53:16 +00:00
asan_fake_stack.h [asan] Fix shifting compiler warnings when compiler in 64-bits 2016-06-21 14:53:16 +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 Add detect_stack_use_after_scope runtime flag 2016-07-19 18:11:08 +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 [compiler-rt] Fix CHECK coding style [NFC] 2016-08-03 15:47:40 +00:00
asan_interceptors.h [asan] Add __strdup interceptor. 2016-04-20 22:45:23 +00:00
asan_interface_internal.h Add detect_stack_use_after_scope runtime flag 2016-07-19 18:11:08 +00:00
asan_internal.h [asan] Add exception handler to map memory on demand on Win64. 2016-07-11 21:40: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 [asan] Add exception handler to map memory on demand on Win64. 2016-07-11 21:40:59 +00:00
asan_malloc_linux.cc [asan] Fix asan initialization failure with newer (2.23+) glibc in use. 2016-05-16 07:20:53 +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 Change the shadow memory address for win64. 2016-06-21 15:11:24 +00:00
asan_memory_profile.cc [asan] fix arm build 2016-06-02 04:01:58 +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 [compiler-rt] Fix CHECK coding style [NFC] 2016-08-03 15:47: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 [sanitizers] introduce __sanitizer_set_report_fd so that we can re-route the sanitizer logging to another fd from inside the process 2016-05-27 21:23:05 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc [compiler-rt] Fix CHECK coding style [NFC] 2016-08-03 15:47:40 +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 Add detect_stack_use_after_scope runtime flag 2016-07-19 18:11:08 +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 [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 [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 [asan] add primitives that allow coroutine implementations 2016-06-21 12:29:18 +00:00
asan_thread.h [asan] add primitives that allow coroutine implementations 2016-06-21 12:29:18 +00:00
asan_win.cc Avoid re-entrancy between __sanitizer::Report, OutputDebugString, and RtlRaiseException 2016-08-04 20:05:13 +00:00
asan_win_dll_thunk.cc [compiler-rt] Fix various typos in asan dll [NFC] 2016-08-01 15:08:12 +00:00
asan_win_dynamic_runtime_thunk.cc fix comments typos [NFC] 2016-08-02 20:07:49 +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