llvm-project/compiler-rt/lib/asan
Alexey Samsonov aa05110a17 [ASan] Create new files asan_report.{h,cc} as a preparation for refactoring of ASan error reporting code.
Currently ASan reports many kinds of errors, and the code that actually prints error messages can
be found inside allocator, OS-specific files, interceptors code etc.

An example of maintenance troubles this situation causes:
There is currently an ASan interface function that registers
callback which should take the char buffer with error report printed by ASan.
This function is now broken, as one has to insert callback calls to all the places in
ASan code where the error reports are printed, surprisingly it is not only
"__asan_report_error" function...

llvm-svn: 161568
2012-08-09 07:40:58 +00:00
..
lit_tests [ASan] simplify cmake rules for adding lit testsuites 2012-08-07 11:09:41 +00:00
output_tests [ASan] add new ASan option 'strip_path_prefix' to remove useless prefices from filenames in stack traces 2012-08-06 13:00:21 +00:00
scripts Implement LinuxSymbolizer instead of symbolize_addr2line. 2012-08-02 14:58:04 +00:00
tests [ASan] Add support for running unit tests by lit (as a part of 'make check-asan' command) 2012-08-07 08:59:15 +00:00
CMakeLists.txt First tiny move towards integrating AddressSanitizer regressions test into LLVM lit-based testing infrastructure. 2012-07-31 15:43:11 +00:00
Makefile.mk [Sanitizer] Make ASan/TSan sources depend on headers from interception library 2012-08-01 14:55:49 +00:00
Makefile.old [asan] move tests from asan_interface_test.cc to asan_noinst_test.cc. Now all these tests do not require instrumentation and work directly with asan rt 2012-06-25 14:23:07 +00:00
README.txt Delete sysinfo/* and all references to it. 2012-01-18 11:42:30 +00:00
asan_allocator.cc AllocationSize(ptr) should check that |ptr| actually points to the beginning of the chunk it belongs to. 2012-08-06 12:24:39 +00:00
asan_allocator.h [asan] more renaming 2012-05-31 15:02:07 +00:00
asan_flags.h [ASan] add new ASan option 'strip_path_prefix' to remove useless prefices from filenames in stack traces 2012-08-06 13:00:21 +00:00
asan_globals.cc [ASan] Use common flags parsing machinery. 2012-07-09 14:36:04 +00:00
asan_interceptors.cc Make strcat() and strncat() more standard-compliant (check for invalid parameters even if zero bytes is copied, more accurate overlap check) 2012-08-02 10:25:46 +00:00
asan_interceptors.h Lots of trivial changes to remove extraneous semicolons throughout ASan. 2012-06-25 06:53:10 +00:00
asan_interface.h [ASan] move flags description to separate header, add comments about them. 2012-07-10 07:41:27 +00:00
asan_internal.h Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +00:00
asan_linux.cc Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +00:00
asan_lock.h tsan/asan: unify ScopedLock 2012-06-29 17:10:08 +00:00
asan_mac.cc [ASan] fix cmake build warning 2012-07-30 10:18:31 +00:00
asan_mac.h Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +00:00
asan_malloc_linux.cc [ASan] fix names of malloc/free replacements on Android 2012-08-06 15:13:22 +00:00
asan_malloc_mac.cc Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +00:00
asan_malloc_win.cc Remove file-type tags for .cc files in ASan run-time library 2012-06-04 13:50:10 +00:00
asan_mapping.h For wild addresses in the shadow or shadow gap areas print an error message instead of crashing on a check. 2012-07-23 08:22:27 +00:00
asan_new_delete.cc Remove file-type tags for .cc files in ASan run-time library 2012-06-04 13:50:10 +00:00
asan_poisoning.cc [ASan] Use common flags parsing machinery. 2012-07-09 14:36:04 +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_printf.cc [Sanitizer] Renaming: SNPrintf -> internal_snprintf (and move it to sanitizer libc) 2012-06-19 09:21:57 +00:00
asan_report.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.h [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_rtl.cc [ASan] add new ASan option 'strip_path_prefix' to remove useless prefices from filenames in stack traces 2012-08-06 13:00:21 +00:00
asan_stack.cc [ASan] add new ASan option 'strip_path_prefix' to remove useless prefices from filenames in stack traces 2012-08-06 13:00:21 +00:00
asan_stack.h [ASan] Use common flags parsing machinery. 2012-07-09 14:36:04 +00:00
asan_stats.cc [Sanitizer]: Introduce a common internal printf function. For now, also use tool-specific wrappers TsanPrintf (its output is controlled by TSan flags) and AsanPrintf (which copies its results to the ASan-private buffer). Supported formats: %[z]{d,u,x}, %s, %p. Re-write all format strings in TSan according to this format (this should have no effect on 64-bit platforms). 2012-06-06 13:11:29 +00:00
asan_stats.h [asan] more renaming 2012-05-31 14:35:53 +00:00
asan_thread.cc Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +00:00
asan_thread.h [asan] get rid of the last operator new call in asan rtl 2012-07-17 07:20:13 +00:00
asan_thread_registry.cc [ASan] Use common flags parsing machinery. 2012-07-09 14:36:04 +00:00
asan_thread_registry.h [ASan] cmake cleanup: make tab/space padding in CMakeLists consistent, silence/fix some pedantic warnings 2012-07-02 06:48:10 +00:00
asan_win.cc Intercept CFAllocator for each thread in the program. 2012-07-23 14:07:58 +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      : Currently a stub for a proper makefile. not usable.
Makefile.old     : Old out-of-tree makefile, the only usable one so far.
asan_*.{cc,h}    : Sources of the asan run-time lirbary.
mach_override/*  : Utility to override functions on Darwin (MIT License).
scripts/*        : Helper scripts.

Temporary build instructions (verified on linux):

cd lib/asan
make -f Makefile.old get_third_party  # gets googletest and cpplint
make -f Makefile.old test -j 8 CLANG_BUILD=/path/to/Release+Asserts
# Optional:
# make -f Makefile.old install # installs clang and rt to lib/asan_clang_linux

For more info see http://code.google.com/p/address-sanitizer/