llvm-project/compiler-rt/lib/asan
Alexander Potapenko d2f6b97417 Avoid calling __asan_init from memcpy(), memmove(), memset() during libSystem initialization.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=117.

llvm-svn: 165227
2012-10-04 13:41:28 +00:00
..
dynamic Intercept signal() and sigaction() within the dynamic runtime on Mac. 2012-09-18 12:49:51 +00:00
lit_tests [asan] properly report mmap failure 2012-10-04 07:21:09 +00:00
scripts Do not patch the instruction address when symbolizing the reports. 2012-10-02 15:42:24 +00:00
tests [ASan] Change __asan_set_on_error_callback to weak overridable __asan_on_error, so that ASan would call the latter even if it finds the error early (i.e. during module initialization) 2012-10-02 14:06:39 +00:00
CMakeLists.txt CMake build rules for ASan Android runtime and tests. 2012-09-11 11:55:45 +00:00
Makefile.mk build: Teach Makefile build system about asan/dynamic subdir. 2012-09-07 19:57:28 +00:00
README.txt [ASan] Nuke output_tests/ in favor of lit_tests/. Stop using Makefile.old. 2012-09-06 06:39:02 +00:00
asan_allocator.cc [ASan] Move printing descriptions of heap addresses in error report from allocator internals to asan_report.cc. 2012-09-18 07:38:10 +00:00
asan_allocator.h [ASan] Move printing descriptions of heap addresses in error report from allocator internals to asan_report.cc. 2012-09-18 07:38:10 +00:00
asan_flags.h [asan] add asan option log_path=PATH to let users redirect asan reports to a file PATH.PID instead of stderr 2012-09-14 04:35:14 +00:00
asan_globals.cc Relocate the external headers provided by ASan and the common sanitizer 2012-08-29 02:27:54 +00:00
asan_intercepted_functions.h Fix two compiler warnings: must use at least one argument for "..." in a variadic macros, signed vs. unsigned comparison. 2012-09-06 13:31:13 +00:00
asan_interceptors.cc Avoid calling __asan_init from memcpy(), memmove(), memset() during libSystem initialization. 2012-10-04 13:41:28 +00:00
asan_interceptors.h If the program is linked to a dynamic ASan runtime which is not present in DYLD_INSERT_LIBRARIES 2012-08-24 09:22:05 +00:00
asan_internal.h Set ASAN_NEEDS_SEGV=0 on Android only. 2012-10-03 15:09:17 +00:00
asan_linux.cc [asan] more refactoring to move StackTrace to sanitizer_common 2012-08-28 13:25:55 +00:00
asan_lock.h tsan/asan: unify ScopedLock 2012-06-29 17:10:08 +00:00
asan_mac.cc [ASan] more macro/casting magic to suppress warnings 2012-09-12 14:10:14 +00:00
asan_mac.h Move the prototype of __CFInitialize to asan_mac.h so that asan_malloc_mac.cc may use it in the dynamic library mode. 2012-08-15 12:23:36 +00:00
asan_malloc_linux.cc [ASan] fix interception macro for Android build 2012-09-12 09:42:23 +00:00
asan_malloc_mac.cc Give more accurate malloc statistics to malloc_zone_statistics(). 2012-09-12 15:29:50 +00:00
asan_malloc_win.cc [ASan] Apply some ASan-relevant pieces of patch by Ruben Van Boxem. In the same time, remove ASan from CMake build on Windows after conversation with Timur. We don't want to support building ASan on Windows until it is in a working state. 2012-09-24 11:43:40 +00:00
asan_mapping.h A few tweaks for building ASanRT against Android NDK. 2012-08-27 11:15:55 +00:00
asan_new_delete.cc A few tweaks for building ASanRT against Android NDK. 2012-08-27 11:15:55 +00:00
asan_poisoning.cc Relocate the external headers provided by ASan and the common sanitizer 2012-08-29 02:27:54 +00:00
asan_posix.cc [ASan] Create new files asan_report.{h,cc} as a preparation for refactoring of ASan error reporting code. 2012-08-09 07:40:58 +00:00
asan_report.cc [ASan] Change __asan_set_on_error_callback to weak overridable __asan_on_error, so that ASan would call the latter even if it finds the error early (i.e. during module initialization) 2012-10-02 14:06:39 +00:00
asan_report.h [ASan] Add print_full_thread_history runtime option (on by default) that prints all full thread creation paths for threads involved in ASan error report 2012-09-05 07:37:15 +00:00
asan_rtl.cc [ASan] Change __asan_set_on_error_callback to weak overridable __asan_on_error, so that ASan would call the latter even if it finds the error early (i.e. during module initialization) 2012-10-02 14:06:39 +00:00
asan_stack.cc [Sanitizer/ASan] Simplify the code that prints and symbolizes stack traces. Fall back to module+offset if user-provided symbolizer failed. Use weak function __asan_symbolize instead of __asan_set_symbolize_callback in ASan interface, so that we're able to symbolize reports for errors that happen before the main() is called, for example, during module initialization. 2012-10-02 12:11:17 +00:00
asan_stack.h [asan] actually move StackTrace to sanitizer_common 2012-08-28 14:11:57 +00:00
asan_stats.cc Relocate the external headers provided by ASan and the common sanitizer 2012-08-29 02:27:54 +00:00
asan_stats.h Give more accurate malloc statistics to malloc_zone_statistics(). 2012-09-12 15:29:50 +00:00
asan_thread.cc [asan] increase max stack size to 256 (+test) 2012-09-06 10:57:03 +00:00
asan_thread.h [ASan] Add print_full_thread_history runtime option (on by default) that prints all full thread creation paths for threads involved in ASan error report 2012-09-05 07:37:15 +00:00
asan_thread_registry.cc Give more accurate malloc statistics to malloc_zone_statistics(). 2012-09-12 15:29:50 +00:00
asan_thread_registry.h Give more accurate malloc statistics to malloc_zone_statistics(). 2012-09-12 15:29:50 +00:00
asan_win.cc [ASan] Add extern C for __asan_symbolize on Windows 2012-10-02 12:35:42 +00:00

README.txt

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

Directory structre:
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 run-time lirbary.
scripts/*        : Helper scripts.
tests/*          : ASan unit tests.
lit_tests/*      : ASan output 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