hanchenye-llvm-project/compiler-rt/lib/asan
Kuba Brecka 9a36b3e147 [compiler-rt] Ensure AsanInitFromRtl is called from a static initializer on OS X by using ASAN_DYNAMIC=1
The idea is to ensure that the ASan runtime gets initialized early (i.e.
before other initializers/constructors) even when DYLD_INSERT_LIBRARIES
is not used. In that case, the interceptors are not installed (on OS X,
DYLD_INSERT_LIBRARIES is required for interceptors to work), and therefore
ASan gets currently initialized quite late -- from the main executable's
module initializer. The following issues are a consequence of this:

  https://code.google.com/p/address-sanitizer/issues/detail?id=363
  https://code.google.com/p/address-sanitizer/issues/detail?id=357

Both of them are fixed with this patch.

Reviewed at http://reviews.llvm.org/D7117

llvm-svn: 226929
2015-01-23 19:29:19 +00:00
..
scripts [asan] Change detection of allow_user_segv_handler on Android. 2015-01-16 13:12:22 +00:00
tests [sanitizer] Flag parser rewrite. 2015-01-15 15:13:43 +00:00
CMakeLists.txt [compiler-rt] Ensure AsanInitFromRtl is called from a static initializer on OS X by using ASAN_DYNAMIC=1 2015-01-23 19:29:19 +00:00
Makefile.mk [ASan] Split static ASan runtime in two parts: asan and asan_cxx. 2014-05-12 18:39:22 +00:00
README.txt Moved the builtins documentation to lib/builtins/ 2014-05-28 23:09:45 +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] Allow changing verbosity in activation flags. 2015-01-20 13:21: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] add flag quarantine_size_mb, deprecate quarantine_size 2015-01-07 02:37:52 +00:00
asan_allocator.h [asan] add a flag soft_rss_limit_mb 2015-01-06 23:53:32 +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 [asan] Allow changing verbosity in activation flags. 2015-01-20 13:21:20 +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 [asan] Allow changing verbosity in activation flags. 2015-01-20 13:21:20 +00:00
asan_flags.h [sanitizer] Flag parser rewrite. 2015-01-15 15:13:43 +00:00
asan_flags.inc [asan] add flag quarantine_size_mb, deprecate quarantine_size 2015-01-07 02:37:52 +00:00
asan_globals.cc [ASan] Introduce SetCanPoisonMemory() function. 2014-12-17 00:01:02 +00:00
asan_init_version.h [ASan] Change fake stack and local variables handling. 2014-12-11 21:53:19 +00:00
asan_interceptors.cc [Sanitizers] Intercept opendir() 2015-01-21 08:54:01 +00:00
asan_interceptors.h [msan] Remove MSanDR and supporting code. 2014-11-18 10:33:15 +00:00
asan_interface_internal.h [asan] the run-time part of intra-object-overflow detector (-fsanitize-address-field-padding=1). Note that all of this is still experimental; don't use unless you are brave. 2014-10-17 01:22:37 +00:00
asan_internal.h [asan] use MADV_NOHUGEPAGE for shadow to reduce the actual memory usage 2015-01-21 02:05:31 +00:00
asan_linux.cc Remove AsanInterceptsSignal in favor of (equivalent) IsDeadlySignal. 2015-01-09 23:03:31 +00:00
asan_lock.h
asan_mac.cc Fix/workaround for OS X truncated stacktraces taken by external tools 2015-01-22 23:36:47 +00:00
asan_malloc_linux.cc [asan] Remove leftover debug printf. 2014-07-17 13:05:21 +00:00
asan_malloc_mac.cc Replace InternalScopedBuffer<char> with InternalScopedString where applicable. 2014-12-02 22:20:11 +00:00
asan_malloc_win.cc [msan] Remove MSanDR and supporting code. 2014-11-18 10:33:15 +00:00
asan_mapping.h [ASan/Win] Move the shadow to 0x30000000 2015-01-22 12:24:21 +00:00
asan_new_delete.cc [msan] Remove MSanDR and supporting code. 2014-11-18 10:33:15 +00:00
asan_poisoning.cc [asan] Allow changing verbosity in activation flags. 2015-01-20 13:21:20 +00:00
asan_poisoning.h [asan] use MADV_NOHUGEPAGE for shadow to reduce the actual memory usage 2015-01-21 02:05:31 +00:00
asan_posix.cc [Asan] Pack signal context into a structure 2014-11-25 13:00:21 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc Fix the extra whitespace from r226878. 2015-01-23 00:14:22 +00:00
asan_report.h [Asan] Pack signal context into a structure 2014-11-25 13:00:21 +00:00
asan_rtl.cc [ASan] Print out the shadow memory range on shadow mapping failures 2015-01-22 12:05:27 +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 [Sanitizer] Kill deprecated allocator interfaces in ASan, MSan and TSan in favor of 2014-08-12 20:28:20 +00:00
asan_stats.h [ASan] Clarify that AsanThread objects are allocated only via mmap(). No functionality change. 2013-11-27 13:22:21 +00:00
asan_suppressions.cc Implement AddressSanitizer suppressions. 2014-12-05 20:26:09 +00:00
asan_suppressions.h Implement AddressSanitizer suppressions. 2014-12-05 20:26:09 +00:00
asan_thread.cc [ASan] Refactor thread starting code. 2014-12-05 17:31:13 +00:00
asan_thread.h [ASan] Refactor thread starting code. 2014-12-05 17:31:13 +00:00
asan_win.cc [Asan] Pack signal context into a structure 2014-11-25 13:00:21 +00:00
asan_win_dll_thunk.cc [msan] Remove MSanDR and supporting code. 2014-11-18 10:33:15 +00:00
asan_win_dynamic_runtime_thunk.cc [ASan/Win] Fix PR20918 -- SEH handler doesn't work with the MD runtime 2014-09-12 14:01:30 +00:00

README.txt

AddressSanitizer RT
================================
This directory contains sources of the AddressSanitizer (asan) runtime library.
We are in the process of integrating AddressSanitizer with LLVM, stay tuned.

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 ASan and TSan.

Currently ASan runtime can be built by both make and cmake build systems.
(see compiler-rt/make and files Makefile.mk for make-based build and
files CMakeLists.txt for cmake-based build).

ASan unit and output tests work only with cmake. You may run this
command from the root of your cmake build tree:

make check-asan

For more instructions see:
http://code.google.com/p/address-sanitizer/wiki/HowToBuild