Alexey Samsonov
f5e2dc3c3d
[ASan] use internal_open from sanitizer_libc in ASan runtime
...
llvm-svn: 157986
2012-06-05 07:25:47 +00:00
Alexey Samsonov
dde1f11fe6
[Sanitizer] Add sanitizer_win.cc for windows-specific implementations of libc functions. Add internal_open.
...
llvm-svn: 157985
2012-06-05 07:05:10 +00:00
Alexey Samsonov
11fff6df33
[TSan] use __sanitizer::internal_mmap in TSan run-time
...
llvm-svn: 157984
2012-06-05 06:19:00 +00:00
Alexey Samsonov
9ab24cc3f5
[ASan] Fix a typo in Makefile.old
...
llvm-svn: 157982
2012-06-05 05:20:33 +00:00
Alexey Samsonov
b6e4f3690b
[Sanitizer] Enable lint for sanitizer_common/
...
llvm-svn: 157931
2012-06-04 14:35:09 +00:00
Alexey Samsonov
2c5fc3bb11
Created files sanitizer_linux.cc and sanitizer_mac.cc for platform-specific implementations of common functions. Turned asan_mmap into __sanitizer::internal_mmap.
...
llvm-svn: 157930
2012-06-04 14:27:50 +00:00
Alexey Samsonov
3b2f9f4c98
Remove file-type tags in .cc files in tsan/ and sanitizer_common/
...
llvm-svn: 157928
2012-06-04 13:55:19 +00:00
Alexey Samsonov
485d3dc363
Remove file-type tags for .cc files in ASan run-time library
...
llvm-svn: 157927
2012-06-04 13:50:10 +00:00
Alexey Samsonov
90f9630c80
[Sanitizer]: move internal_strcmp to sanitizer_common
...
llvm-svn: 157926
2012-06-04 13:27:49 +00:00
Alexey Samsonov
4ecc8f43c7
[ASan] Use ASan option symbolize to turn on internal symbolizer (in development)
...
llvm-svn: 157924
2012-06-04 11:20:17 +00:00
Alexey Samsonov
06f2cd38c1
[Sanitizer] Move internal_strncpy to sanitizer_libc (and make its behavior conforming to manual)
...
llvm-svn: 157922
2012-06-04 10:30:16 +00:00
Alexey Samsonov
c1971ca12f
[Sanitizer_common] fix filenames in comments
...
llvm-svn: 157919
2012-06-04 09:33:06 +00:00
Alexey Samsonov
cad2e4e6c2
temporary include stdlib.h in symbolizer to fix Mac/Win build
...
llvm-svn: 157808
2012-06-01 07:41:47 +00:00
Kostya Serebryany
02845c1dd4
[asan] fix gcc build
...
llvm-svn: 157807
2012-06-01 07:41:04 +00:00
Alexey Samsonov
6f596767c3
Stub files for common symbolizer for AddressSanitizer and ThreadSanitizer tools.
...
It is an analogue of addr2line utility and should allow to map instruction address to a location
in source code at run-time. It should use debug information (in DWARF) in a binary, and hopefully
it would be possible to re-use code from llvm/DebugInfo/DIContext.h
llvm-svn: 157806
2012-06-01 06:11:13 +00:00
Dmitry Vyukov
95a5c5ca4c
tsan: intercept longjmp() but die in it, greatly simplifies problem diagnostic
...
llvm-svn: 157760
2012-05-31 18:03:59 +00:00
Kostya Serebryany
8a66b71c8f
[asan] partial fix for windows build
...
llvm-svn: 157750
2012-05-31 16:06:05 +00:00
Kostya Serebryany
f8c5a5bcbc
[asan] partial fix for windows build
...
llvm-svn: 157748
2012-05-31 15:44:05 +00:00
Kostya Serebryany
1d35d155fd
[asan] more renaming
...
llvm-svn: 157747
2012-05-31 15:02:07 +00:00
Kostya Serebryany
8d03204204
[asan] more renaming
...
llvm-svn: 157746
2012-05-31 14:35:53 +00:00
Dmitry Vyukov
6f448700e4
tsan: fix a typo
...
llvm-svn: 157744
2012-05-31 14:24:10 +00:00
Kostya Serebryany
1b71207f48
[asan,tsan] introduce sanitizer_common/sanitizer_defs.h and perform some renaming in asan rt. More to come.
...
llvm-svn: 157743
2012-05-31 14:11:07 +00:00
Alexander Potapenko
a39c2fec46
Fix the wildcards for two output tests on Darwin.
...
It turns out that atos does not print the symbol names for static C++ functions correctly (one of the two leading underscores is omitted), so they remain mangled.
llvm-svn: 157742
2012-05-31 13:55:40 +00:00
Kostya Serebryany
c5bea20e2e
[asan,tsan] rename files in sanitizer_common to have a common prefix (sanitizer_).
...
llvm-svn: 157740
2012-05-31 13:42:53 +00:00
Dmitry Vyukov
d6ffccd1da
tsan: suppress reports against source file names as well
...
llvm-svn: 157739
2012-05-31 13:18:11 +00:00
Alexander Potapenko
bb50e7f08c
Be more verbose when installing the signals.
...
llvm-svn: 157693
2012-05-30 15:29:11 +00:00
Alexander Potapenko
6e216bea86
Fix a bug in parsing boolean flags: we used to take the first char of the key=value string
...
instead of the first character of the value.
llvm-svn: 157692
2012-05-30 15:28:45 +00:00
Alexander Potapenko
93b2c7d516
Be less verbose when parsing the default options.
...
llvm-svn: 157691
2012-05-30 14:12:20 +00:00
Dmitry Vyukov
92d917d91c
tsan: prevent recursive signal handlers
...
llvm-svn: 157625
2012-05-29 15:51:27 +00:00
Kostya Serebryany
458b4006b2
[asan,tsan] Add a new directory compiler-rt/lib/sanitizer_common
...
which will contain code shared between asan and tsan run-times.
Naming is hard. If you can suggest a better name for the directory -- speak up.
llvm-svn: 157611
2012-05-29 12:18:18 +00:00
Alexey Samsonov
1cbe656d66
Fixing ASan build on Win: don't use __asan_default_options
...
llvm-svn: 157608
2012-05-29 09:39:01 +00:00
Alexander Potapenko
d07b7b529a
Do not define ___asan_default_options on Windows.
...
llvm-svn: 157603
2012-05-29 08:26:18 +00:00
Alexey Samsonov
80bc3b0d2b
Fix atoi stub for linux introduced in r157573. This fixes compiler-rt build on linux.
...
llvm-svn: 157600
2012-05-29 06:55:01 +00:00
Dmitry Vyukov
9bf897e696
tsan: fix compiler warnings
...
llvm-svn: 157585
2012-05-28 17:33:08 +00:00
Dmitry Vyukov
880bb6697f
tsan: fix race during pthread_join/detach
...
llvm-svn: 157584
2012-05-28 17:32:50 +00:00
Alexander Potapenko
0efd915d92
Rework the flags machinery a bit.
...
Clients may define the __asan_default_options char string containing the default options for the tool now.
llvm-svn: 157582
2012-05-28 16:21:19 +00:00
Alexander Potapenko
db892de581
More verbose check in AppendString.
...
llvm-svn: 157580
2012-05-28 15:00:45 +00:00
Dmitry Vyukov
e1bbb2f34a
tsan: pass CFLAGS to tests
...
llvm-svn: 157579
2012-05-28 14:15:39 +00:00
Dmitry Vyukov
ed5bc02740
tsan: be more conservative wrt symbolizer output
...
llvm-svn: 157578
2012-05-28 14:14:53 +00:00
Bill Wendling
aa888a29eb
Add support for the GCOV_PREFIX_STRIP env variable which tries to strip off the first 'n' directories from the filename.
...
llvm-svn: 157574
2012-05-28 10:09:01 +00:00
Bill Wendling
1e039681c5
Add stub for 'atoi'.
...
llvm-svn: 157573
2012-05-28 09:58:27 +00:00
Bill Wendling
65adec933d
Simplify the logic that tries to open the GCDA file at all costs. Basically, if
...
we can't open the file even after creating all of the directories to it, then
just give up.
llvm-svn: 157572
2012-05-28 09:46:43 +00:00
Bill Wendling
bba2a7d46d
* A bit of cleanup of the 'recursive_mkdir'. No functionality change.
...
* Check for absolute paths before using the GCOV_PREFIX.
* Don't add an ending path separator if there's already one.
llvm-svn: 157571
2012-05-28 09:41:48 +00:00
Dmitry Vyukov
d558530754
tsan: increase /proc/self/maps max size (1M is far not enough)
...
llvm-svn: 157570
2012-05-28 09:24:01 +00:00
Dmitry Vyukov
bd310f02a5
asan/tsan: rename interceptors from __xsan_xxx to __interceptor_xxx
...
llvm-svn: 157569
2012-05-28 07:47:35 +00:00
Dmitry Vyukov
ebdf670ae7
tsan: more robust detection of stack of main thread
...
llvm-svn: 157568
2012-05-28 07:46:42 +00:00
Dmitry Vyukov
3de9ca068f
tsan: use DCHECK_GT/LT instead of plain DCHECK (better diagnostics)
...
llvm-svn: 157567
2012-05-28 07:45:35 +00:00
Dmitry Vyukov
2d4e3c140f
tsan: do not clean stack/tls for main thread
...
llvm-svn: 157566
2012-05-28 07:44:34 +00:00
Dmitry Vyukov
9b13e9f3b5
asan: remove static libraries on make clean
...
llvm-svn: 157565
2012-05-28 07:43:36 +00:00
Bill Wendling
f16084723c
Don't use 'strrchr', which isn't implemented here yet.
...
llvm-svn: 157560
2012-05-28 02:50:53 +00:00
Bill Wendling
74f987f3b6
Sync with old GCOV runtime library's file.
...
llvm-svn: 157559
2012-05-28 02:34:34 +00:00
Alexander Potapenko
4e424b85e3
Typo fix.
...
llvm-svn: 157477
2012-05-25 15:56:40 +00:00
Alexander Potapenko
85e93ef612
Factor ParseAsanOptions outside __asan_init
...
llvm-svn: 157473
2012-05-25 15:37:16 +00:00
Alexander Potapenko
442002568c
Introduce the check_malloc_usable_size flag (on by default).
...
When the flag is set to zero, we do not check for errors in malloc_usable_size.
This may be useful to work around a bug in Nvidia drivers prior to 295.*
llvm-svn: 157472
2012-05-25 15:20:13 +00:00
Dmitry Vyukov
7339eb197b
tsan: do not call into libc in symbolizer and in other code (this causes recursion and crashes)
...
llvm-svn: 157466
2012-05-25 11:15:04 +00:00
Dmitry Vyukov
e86497ee1c
tsan: output message about failure to intercept only if verbosity flag is passed
...
llvm-svn: 157465
2012-05-25 09:47:18 +00:00
Dmitry Vyukov
ff25cf5887
asan: fix tests
...
depending on -m32/-m64 addr2line says either e.g. __xsan_strnlen or just strnlen
llvm-svn: 157464
2012-05-25 09:46:33 +00:00
Meador Inge
6fef6e6466
Adding back a right parenthesis that was dropped in r157388.
...
llvm-svn: 157406
2012-05-24 18:16:39 +00:00
Dmitry Vyukov
d1b9521e48
tsan: compilation of tests with newest clang
...
llvm-svn: 157392
2012-05-24 14:55:12 +00:00
Dmitry Vyukov
30c32a8819
tsan: fix compilation with newest clang
...
llvm-svn: 157391
2012-05-24 14:50:33 +00:00
Dmitry Vyukov
7fb7330469
asan/tsan: weak interceptors
...
The idea isthat asan/tsan can survive if user intercepts the same functions. At the same time user has an ability to call back into asan/tsan runtime. See the following tests for examples:
asan/output_tests/interception_failure_test-linux.cc
asan/output_tests/interception_test-linux.cc
asan/output_tests/interception_malloc_test-linux.cc
llvm-svn: 157388
2012-05-24 13:54:31 +00:00
Dmitry Vyukov
65c21a5e6d
tsan: add a flag to control RunningOnValgrind() return value
...
llvm-svn: 157383
2012-05-24 09:24:45 +00:00
Evgeniy Stepanov
8152e22073
Move AsanShadowRangeIsAvailable() from mac to posix.
...
llvm-svn: 157326
2012-05-23 15:21:50 +00:00
Evgeniy Stepanov
8f247016bd
Use zero-based shadow by default on Android.
...
llvm-svn: 157318
2012-05-23 11:52:37 +00:00
Dmitry Vyukov
4a17675888
asan: fix typo in comment
...
llvm-svn: 157314
2012-05-23 06:14:21 +00:00
Dmitry Vyukov
302cebb8f1
tsan: add shadow memory flush + fix few bugs
...
llvm-svn: 157270
2012-05-22 18:07:45 +00:00
Dmitry Vyukov
011a363c85
tsan: fix sizeof sigset_t
...
llvm-svn: 157268
2012-05-22 18:01:33 +00:00
Dmitry Vyukov
4d30e9b5eb
tsan: fix makefile
...
allow to build custom configurations
llvm-svn: 157259
2012-05-22 16:46:05 +00:00
Dmitry Vyukov
f6985e3ab9
tsan: reduce per-thread memory usage
...
llvm-svn: 157252
2012-05-22 14:34:43 +00:00
Kostya Serebryany
5d03d45643
[asan] nuke some old unused code
...
llvm-svn: 157250
2012-05-22 13:31:35 +00:00
Kostya Serebryany
02d5ec5ecf
[asan] increase the stack size limit to 256M (yes, that happens); also CHECK that the stack size is less than that on a non-main thread
...
llvm-svn: 157249
2012-05-22 11:54:44 +00:00
Dmitry Vyukov
15710c9220
tsan: simple memory profiler
...
llvm-svn: 157248
2012-05-22 11:33:03 +00:00
Kostya Serebryany
a20890b6bc
[asan] use -fno-builtin to build asan-rt on Mac
...
llvm-svn: 157239
2012-05-22 07:59:37 +00:00
Kostya Serebryany
c84461dbfe
[asan] use -fPIE -fno-builtin for building asan-rt
...
llvm-svn: 157238
2012-05-22 07:56:09 +00:00
Kostya Serebryany
4fa4ac1290
[asan] fix one test on 32-bit Mac 10.7; enable another test on Mac
...
llvm-svn: 157237
2012-05-22 07:44:30 +00:00
Dmitry Vyukov
46c1a4c25e
tsan: implement malloc/free hooks
...
llvm-svn: 157196
2012-05-21 17:39:40 +00:00
Timur Iskhodzhanov
ea365131a2
[ASan] Make for-Windows RTL compileable using Clang++
...
llvm-svn: 157188
2012-05-21 14:25:36 +00:00
Dmitry Vyukov
99ed663a42
tsan: do not assume non-recursive signal handlers
...
llvm-svn: 157187
2012-05-21 14:24:20 +00:00
Dmitry Vyukov
163a8338be
tsan: replace CHECK with CHECK_EQ for better diagnostics
...
llvm-svn: 157181
2012-05-21 10:20:53 +00:00
Dmitry Vyukov
98953b7a6d
tsan: better, more realistic handling of signals
...
llvm-svn: 157178
2012-05-21 08:26:51 +00:00
Dmitry Vyukov
9d2229f3ca
tsan: add more checks for OOM conditions
...
tests like to try to malloc((size_t)-1)
llvm-svn: 157176
2012-05-21 06:46:27 +00:00
Dmitry Vyukov
f64046cb3d
tsan: check for overflow in malloc()
...
llvm-svn: 157048
2012-05-18 09:41:52 +00:00
Dmitry Vyukov
bea47a5029
tsan: fix potential NULL deref
...
llvm-svn: 157047
2012-05-18 08:53:16 +00:00
Dmitry Vyukov
19b855fe3e
tsan: remove shutdown code
...
tsan runtime shutdown is problematic for 2 reasons:
1. others crash during shutdown
2. we have to override user exit status (don't know it and can't return from atexit handler)
llvm-svn: 156991
2012-05-17 15:00:27 +00:00
Dmitry Vyukov
fee5b7d2e0
tsan: detect accesses to freed memory
...
http://codereview.appspot.com/6214052
llvm-svn: 156990
2012-05-17 14:17:51 +00:00
Kostya Serebryany
82bcc58384
[tsan] fix dependency rules in Makefile.old
...
llvm-svn: 156983
2012-05-17 08:33:14 +00:00
Dmitry Vyukov
352358b715
tsan: ValgrindSlowdown() should be weak for some time
...
llvm-svn: 156982
2012-05-17 08:31:47 +00:00
Dmitry Vyukov
166b8e5f33
tsan: add ValgrindSlowdown() "dynamic annotation"
...
llvm-svn: 156981
2012-05-17 08:04:41 +00:00
Dmitry Vyukov
f015a94f09
tsan: improve addr2line symbolizer
...
-provide support for non-continous modules
-ignore not loaded sections
-more debug output
llvm-svn: 156924
2012-05-16 16:40:47 +00:00
Kostya Serebryany
e263221069
[tsan] add tiny_test.c
...
llvm-svn: 156908
2012-05-16 07:48:16 +00:00
Kostya Serebryany
480922f6a1
[tsan] fix old-style makefile -- we still need them to run our tests
...
llvm-svn: 156907
2012-05-16 07:46:55 +00:00
Kostya Serebryany
c9fd917b36
[tsan] makefile machinery to build tsan-rt (linux-x86_64 only)
...
llvm-svn: 156822
2012-05-15 15:17:35 +00:00
Kostya Serebryany
8423f5654f
[asan] fix the old-style Makefile, which we still need to run asan tests
...
llvm-svn: 156818
2012-05-15 12:41:14 +00:00
David Chisnall
ca9c93c38d
Update atomic.c to work with the new clang builtins.
...
llvm-svn: 156817
2012-05-15 12:36:14 +00:00
Kostya Serebryany
1dd4c606ed
[asan] move lib/asan/interception to lib/interception so that other tools (e.g. tsan) can use it
...
llvm-svn: 156816
2012-05-15 12:21:33 +00:00
Dmitry Vyukov
572c5b2a44
tsan: add more atomics to public interface (fetch_or/and/xor + 1-,2-byte versions)
...
llvm-svn: 156766
2012-05-14 15:33:00 +00:00
Dmitry Vyukov
665ce2a2f4
tsan: enabled report suppression for signal-unsafe reports
...
llvm-svn: 156765
2012-05-14 15:28:03 +00:00
Dmitry Vyukov
d004b99cc6
tsan: fix output_tests script to actually verify tests results
...
llvm-svn: 156764
2012-05-14 15:25:35 +00:00
Dmitry Vyukov
f5cbda29cd
tsan: make addr2line symbolizer understand dynamic libraries
...
Collect info about all dynamic libraries in the process (name, base, size).
Determine to what dyn lib the address relates, route request to addr2line instance for the lib.
llvm-svn: 156759
2012-05-14 14:38:29 +00:00
Dmitry Vyukov
fa44dc5623
tsan: update output tests to race on heap memory
...
Races on stack of main thread are problematic for COMPAT mapping, because it's not 1-to-1 and race addr is not properly mapped from shadow back to application memory.
Update output tests to race heap memory.
llvm-svn: 156758
2012-05-14 14:00:07 +00:00