llvm-project/compiler-rt/lib/asan
Reid Kleckner d85f7010cc [windows] Implement GetProcAddress internally to avoid initializing the CRT
ASan uses GetProcAddress to get the address of malloc so it can patch
it. Newer versions of Windows make GetProcAddress initialize the DLL
before returning a function pointer into it. That's perfectly
reasonable, but ASan needs to finish patching malloc before CRT
initialization. So now we roll our own GetProcAddress.

Fixes PR24237

Based on a patch by David Major

Originally written by David Major as part of:
https://hg.mozilla.org/mozilla-central/file/tip/toolkit/xre/WindowsCrtPatch.h

llvm-svn: 245377
2015-08-18 22:38:27 +00:00
..
scripts [asan] Support arm64 devices in asan_device_setup. 2015-07-30 20:07:13 +00:00
tests [ASAN] Disable ManyThreadsTest in AArch64 2015-08-07 12:40:05 +00:00
CMakeLists.txt [CMake] Refactoring add_compiler_rt functions for darwin runtimes. 2015-08-18 17:32:18 +00:00
Makefile.mk Revert "Remove support for building sanitizers from Makefile/autoconf build." 2015-02-17 23:30:51 +00:00
README.txt Remove support for building sanitizers from Makefile/autoconf build on Linux. 2015-02-18 22:26:49 +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 [asan] Read process name from /proc/self/cmdline on Linux. 2015-07-28 20:27:51 +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] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_allocator.h [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +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 [msan] Better use-after-free reports. 2015-01-22 13:33:16 +00:00
asan_fake_stack.cc Try to fix the MSVC build now that we use /Zc:inline. 2015-08-12 18:09:44 +00:00
asan_fake_stack.h [asan] introduce two functions that will allow implementations of C++ garbage colection to work with asan's fake stack 2014-02-06 06:56:22 +00:00
asan_flags.cc [UBSan] Embed UBSan into ASan runtime (compiler-rt part). 2015-04-01 22:42:36 +00:00
asan_flags.h [Sanitizer] Change InitializeFlags() signatures. NFC. 2015-02-12 00:36:42 +00:00
asan_flags.inc [asan,tsan,msan] move the memcmp interceptor from asan/tsan to sanitizer_common. This may potentially lead to more reports from msan as it now sees the reads inside memcmp. To disable, use the flag intercept_memcmp=0. Likewise, it may potentially cause new races to appear due to more strict memcmp checking (flag strict_memcmp=1) 2015-07-29 23:53:08 +00:00
asan_globals.cc [ASan] Print global registration site in init-order-checker reports. 2015-04-22 20:30:19 +00:00
asan_init_version.h [asan] Rename the ABI versioning symbol to '__asan_version_mismatch_check' instead of abusing '__asan_init' 2015-07-23 10:55:13 +00:00
asan_interceptors.cc [asan] Fix signal() interception on 64-bit Android. 2015-07-31 00:00:03 +00:00
asan_interceptors.h [ASan] NFC: Factor out platform-specific interceptors 2015-03-16 14:22:53 +00:00
asan_interface_internal.h [asan] Rename the ABI versioning symbol to '__asan_version_mismatch_check' instead of abusing '__asan_init' 2015-07-23 10:55:13 +00:00
asan_internal.h [sanitizer] 2-nd attempt. Add the flag handle_sigfpe that is default true to handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski. This time the test is enabled only on x86-64 (it broke on ARM) 2015-08-06 17:52:54 +00:00
asan_linux.cc [asan] Remove AsanPlatformThreadInit 2015-07-21 17:42:37 +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] Fix dyld version detection on OS X 2015-08-03 14:48:59 +00:00
asan_malloc_linux.cc [asan] Remove leftover debug printf. 2014-07-17 13:05:21 +00:00
asan_malloc_mac.cc Revert "[ASan] Add the new __asan_mz_* symbols to asan_interface_internal.h" 2015-02-04 19:14:35 +00:00
asan_malloc_win.cc [msan] Remove MSanDR and supporting code. 2014-11-18 10:33:15 +00:00
asan_mapping.h [asan] Try different values of the shadow gap start. 2015-08-07 22:38:44 +00:00
asan_new_delete.cc -Wdeprecated: Use noexcept rather than throw() where supported 2015-08-10 15:24:22 +00:00
asan_poisoning.cc asan: optimization experiments 2015-03-17 16:59:11 +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 [sanitizer] 2-nd attempt. Add the flag handle_sigfpe that is default true to handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski. This time the test is enabled only on x86-64 (it broke on ARM) 2015-08-06 17:52:54 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc [sanitizer] 2-nd attempt. Add the flag handle_sigfpe that is default true to handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski. This time the test is enabled only on x86-64 (it broke on ARM) 2015-08-06 17:52:54 +00:00
asan_report.h [sanitizer] 2-nd attempt. Add the flag handle_sigfpe that is default true to handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski. This time the test is enabled only on x86-64 (it broke on ARM) 2015-08-06 17:52:54 +00:00
asan_rtl.cc [asan] Try different values of the shadow gap start. 2015-08-07 22:38:44 +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 [ASan] Allow to atomically modify malloc_context_size at runtime. 2014-12-16 01:23:03 +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 [sanitizer] use simpler symbolizer interface (GetModuleNameForPc) where applicable 2015-03-05 01:30:36 +00:00
asan_suppressions.h [asan] add suppressions for odr violations 2015-02-25 00:49:12 +00:00
asan_thread.cc [asan] Remove AsanPlatformThreadInit 2015-07-21 17:42:37 +00:00
asan_thread.h [asan] Fix SanitizerCommon.PthreadDestructorIterations test on Android L. 2015-06-29 20:28:55 +00:00
asan_win.cc Fix installation of the unhandled exception filter with r244767 2015-08-13 16:37:28 +00:00
asan_win_dll_thunk.cc [windows] Implement GetProcAddress internally to avoid initializing the CRT 2015-08-18 22:38:27 +00:00
asan_win_dynamic_runtime_thunk.cc [ASan/Win] Work around PR22545: call LLVM global_dtors in the MD atexit() 2015-03-02 19:41:09 +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:
http://code.google.com/p/address-sanitizer/wiki/HowToBuild