summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan/rtl
Commit message (Collapse)AuthorAgeFilesLines
...
* [sanitizer] Intercept strptime.Evgeniy Stepanov2013-11-022-0/+2
| | | | llvm-svn: 193903
* tsna: do not call user code from within runtime (from fflush)Dmitry Vyukov2013-11-011-1/+7
| | | | llvm-svn: 193880
* [Sanitizer] Add Symbolizer::AddHooks() and use it in TSan and MSan.Alexey Samsonov2013-10-313-15/+13
| | | | | | | | | | | | | | | | | | | | | Summary: TSan and MSan need to know if interceptor was called by the user code or by the symbolizer and use pre- and post-symbolization hooks for that. Make Symbolizer class responsible for calling these hooks instead. This would ensure the hooks are only called when necessary (during in-process symbolization, they are not needed for out-of-process) and save specific sanitizers from tracing all places in the code where symbolization will be performed. Reviewers: eugenis, dvyukov Reviewed By: eugenis CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2067 llvm-svn: 193807
* [sanitizer] Intercept getline, getdelim.Evgeniy Stepanov2013-10-312-0/+4
| | | | llvm-svn: 193730
* [sanitizer] Intercept drand48_r, lrand48_r.Evgeniy Stepanov2013-10-292-0/+4
| | | | llvm-svn: 193655
* [sanitizer] Intercept sincos, remquo, lgamma, lgamma_r.Evgeniy Stepanov2013-10-292-0/+24
| | | | llvm-svn: 193645
* [tsan] Fix unused variable warnings.Evgeniy Stepanov2013-10-291-4/+9
| | | | llvm-svn: 193639
* tsan/asan: support pthread_setname_np to set thread namesDmitry Vyukov2013-10-293-0/+18
| | | | llvm-svn: 193602
* tsan: start the background thread with signals blocked, otherwise it can ↵Dmitry Vyukov2013-10-281-0/+6
| | | | | | steal users signals llvm-svn: 193519
* Overhaul the symbolizer interface.Peter Collingbourne2013-10-252-10/+10
| | | | | | | | | | | | | | | | | | | | | | This moves away from creating the symbolizer object and initializing the external symbolizer as separate steps. Those steps now always take place together. Sanitizers with a legacy requirement to specify their own symbolizer path should use InitSymbolizer to initialize the symbolizer with the desired path, and GetSymbolizer to access the symbolizer. Sanitizers with no such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for initialization. The symbolizer interface has been made thread-safe (as far as I can tell) by protecting its member functions with mutexes. Finally, the symbolizer interface no longer relies on weak externals, the introduction of which was probably a mistake on my part. Differential Revision: http://llvm-reviews.chandlerc.com/D1985 llvm-svn: 193448
* [sanitizer] Intercept tmpnam, tmpnam_r, tempnam.Evgeniy Stepanov2013-10-252-0/+7
| | | | llvm-svn: 193415
* [sanitizer] Remove pthread_attr_getstackaddr interceptor.Evgeniy Stepanov2013-10-252-2/+0
| | | | | | The function is deprecated. llvm-svn: 193409
* [sanitizer] Intercept pthread_attr_get*.Evgeniy Stepanov2013-10-253-3/+23
| | | | llvm-svn: 193405
* tsan: do not crash when apparently bogus fd is passed to e.g. closeDmitry Vyukov2013-10-251-2/+34
| | | | | | | | some tests test libc/filesystem error handling paths (e.g. close(INT_MAX)), currently such tests fail with this change they work as expected llvm-svn: 193400
* [sanitizer] Intercept random_r.Evgeniy Stepanov2013-10-252-0/+2
| | | | llvm-svn: 193396
* [sanitizer] Intercept shmctl.Evgeniy Stepanov2013-10-242-0/+2
| | | | llvm-svn: 193348
* [sanitizer] Intercept ether_* functions.Evgeniy Stepanov2013-10-232-0/+14
| | | | llvm-svn: 193241
* [sanitizer] Intercept initgroups.Evgeniy Stepanov2013-10-222-0/+2
| | | | llvm-svn: 193158
* [sanitizer] Move statfs/fstatfs to common interceptors and add statvfs/fstatvfs.Evgeniy Stepanov2013-10-182-0/+16
| | | | llvm-svn: 192965
* [sanitizer] Intercept getmntent, getmntent_r.Evgeniy Stepanov2013-10-182-0/+4
| | | | llvm-svn: 192959
* [Sanitizer] Move pthread_cond_signal and pthread_cond_broadcast to common ↵Alexey Samsonov2013-10-171-16/+0
| | | | | | interceptors llvm-svn: 192876
* tsan: add a test for __tsan_default_options()Dmitry Vyukov2013-10-171-8/+0
| | | | llvm-svn: 192873
* tsan: move shadow stack from thread descriptors to fixed addressesDmitry Vyukov2013-10-168-28/+42
| | | | | | | | This allows to increase max shadow stack size to 64K, and reliably catch shadow stack overflows instead of silently corrupting memory. llvm-svn: 192797
* [TSan] Extend test for reporting globals with races on themAlexey Samsonov2013-10-161-1/+1
| | | | llvm-svn: 192782
* Make some pthread_mutex_* and pthread_cond_* interceptors common.Alexey Samsonov2013-10-161-36/+6
| | | | | | | | | | | | Reviewers: eugenis, dvyukov Reviewed By: dvyukov CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1937 llvm-svn: 192774
* tsan: introduce __tsan_default_options() functionDmitry Vyukov2013-10-151-24/+41
| | | | | | | The function allows to statically setup default values for flags. The interafece matches what asan/msan provide. llvm-svn: 192715
* tsan: use verbosity flag in sanitizer_common code directlyDmitry Vyukov2013-10-151-7/+1
| | | | | | now it's available from common_flags() llvm-svn: 192705
* tsan: move verbosity flag to CommonFlagsDmitry Vyukov2013-10-152-8/+7
| | | | llvm-svn: 192701
* tsan: fix Go buildDmitry Vyukov2013-10-151-0/+8
| | | | llvm-svn: 192696
* tsan: use sanitizer::CommonFlags in tsanDmitry Vyukov2013-10-154-28/+11
| | | | llvm-svn: 192692
* tsan: resolve symlinks for called_from_lib suppressionsDmitry Vyukov2013-10-151-2/+2
| | | | llvm-svn: 192688
* tsan: allow to override OnFinalize() in front-ends that does not support ↵Dmitry Vyukov2013-10-141-1/+5
| | | | | | weak functions (Go) llvm-svn: 192569
* tsan: catch more races on file descriptorsDmitry Vyukov2013-10-112-2/+12
| | | | llvm-svn: 192452
* tsan: fix epoll_ctl interceptorDmitry Vyukov2013-10-111-6/+8
| | | | | | | | | | | | | | | | | | Currently data-race-test unittests fail with the following false positive: WARNING: ThreadSanitizer: data race (pid=20365) Write of size 8 at 0x7da000008050 by thread T54: #0 close tsan_interceptors.cc:1483 (racecheck_unittest-linux-amd64-O0+0x0000000eb34a) #1 NegativeTests_epoll::Worker2() unittest/posix_tests.cc:1148 (racecheck_unittest-linux-amd64-O0+0x0000000cc6b1) #2 MyThread::ThreadBody(MyThread*) unittest/./thread_wrappers_pthread.h:367 (racecheck_unittest-linux-amd64-O0+0x000000097500) Previous read of size 8 at 0x7da000008050 by thread T49: #0 epoll_ctl tsan_interceptors.cc:1646 (racecheck_unittest-linux-amd64-O0+0x0000000e9fee) #1 NegativeTests_epoll::Worker1() unittest/posix_tests.cc:1140 (racecheck_unittest-linux-amd64-O0+0x0000000cc5b5) #2 MyThread::ThreadBody(MyThread*) unittest/./thread_wrappers_pthread.h:367 (racecheck_unittest-linux-amd64-O0+0x000000097500) llvm-svn: 192448
* [sanitizer] Move the PTHREAD_DESTRUCTOR_ITERATIONS constant to ↵Sergey Matveev2013-10-111-1/+2
| | | | | | | | sanitizer_linux.h. Add a test. llvm-svn: 192442
* tsan: minor refactoringDmitry Vyukov2013-10-101-6/+1
| | | | | | Replace duplicate code snippet with function. llvm-svn: 192357
* tsan: add annotations to ignore synchronization operationsDmitry Vyukov2013-10-108-64/+131
| | | | | | | | The annotations are AnnotateIgnoreSyncBegin/End, may be useful to ignore some infrastructure synchronization that introduces lots of false negatives. llvm-svn: 192355
* [TSan] Automatically pick up llvm-symbolizer from PATH, as we do in another ↵Alexey Samsonov2013-10-041-6/+7
| | | | | | sanitizers llvm-svn: 191954
* [TSan] Add ValgrindSlowdown to the list of exported symbolsAlexey Samsonov2013-10-041-0/+1
| | | | llvm-svn: 191952
* tsan: fix a bug in pthread_once when called from an ignored libraryDmitry Vyukov2013-10-041-3/+7
| | | | | | It must set thr->in_rtl = 0 before executing user callback. llvm-svn: 191946
* Refactor the usage of strip_path_prefix option and make it more consistent ↵Alexey Samsonov2013-10-041-0/+1
| | | | | | across sanitizers llvm-svn: 191943
* tsan: add memory_limit_mb flagDmitry Vyukov2013-10-034-2/+40
| | | | | | | The flag allows to bound maximum process memory consumption (best effort). If RSS reaches memory_limit_mb, tsan flushes all shadow memory. llvm-svn: 191913
* asan/msan/tsan: move _exit interceptor to common interceptorsDmitry Vyukov2013-10-031-10/+9
| | | | llvm-svn: 191903
* tsan: intercept _exit so that we can override exit statusDmitry Vyukov2013-10-034-10/+25
| | | | llvm-svn: 191898
* tsan: ignore interceptors coming from specified librariesDmitry Vyukov2013-10-039-56/+76
| | | | | | | | | | | | | LibIgnore allows to ignore all interceptors called from a particular set of dynamic libraries. LibIgnore remembers all "called_from_lib" suppressions from the provided SuppressionContext; finds code ranges for the libraries; and checks whether the provided PC value belongs to the code ranges. Also make malloc and friends interceptors use SCOPED_INTERCEPTOR_RAW instead of SCOPED_TSAN_INTERCEPTOR, because if they are called from an ignored lib, then must call our internal allocator instead of libc malloc. llvm-svn: 191897
* [sanitizer] Intercept backtrace, backtrace_symbols.Evgeniy Stepanov2013-09-272-0/+4
| | | | llvm-svn: 191516
* tsan: support allocator_may_return_null flagDmitry Vyukov2013-09-272-0/+6
| | | | | | Fixes https://code.google.com/p/thread-sanitizer/issues/detail?id=29 llvm-svn: 191482
* [sanitizer] A bunch of libc interceptors.Evgeniy Stepanov2013-09-253-12/+23
| | | | | | | | | | | | sigwait sigwaitinfo sigtimedwait sigemptyset sigfillset sigpending sigprocmask llvm-svn: 191374
* [sanitizer] Intercept wordexp.Evgeniy Stepanov2013-09-242-0/+2
| | | | llvm-svn: 191305
* tsan: allow symbolization of non-native PCs, e.g. coming from JIT/JAVA/etcDmitry Vyukov2013-09-221-0/+49
| | | | llvm-svn: 191157
OpenPOWER on IntegriCloud