Commit Graph

21 Commits

Author SHA1 Message Date
Dmitry Vyukov 51f5b5fd73 tsan: serialize report printing in standalone deadlock detector
otherwise reports get intermixed

llvm-svn: 206043
2014-04-11 17:54:27 +00:00
Alexey Samsonov 78a8435fd6 [CMake] Rename add_compiler_rt_static_runtime to add_compiler_rt_runtime.
Soon there will be an option to build compiler-rt parts as shared libraries
on Linux. Extracted from http://llvm-reviews.chandlerc.com/D3042
by Yuri Gribov.

llvm-svn: 205183
2014-03-31 13:45:36 +00:00
Alexander Potapenko 1296436cbf [libsanitizer] Introduce flag descriptions.
Extend ParseFlag to accept the |description| parameter, add dummy values for all existing flags.
As the flags are parsed their descriptions are stored in a global linked list.
The tool can later call __sanitizer::PrintFlagDescriptions() to dump all the flag names and their descriptions.
Add the 'help' flag and make ASan, TSan and MSan print the flags if 'help' is set to 1.

llvm-svn: 204339
2014-03-20 12:52:52 +00:00
Dmitry Vyukov cc579aeba6 tsan: use attribute instead of compiler flag for tls-model=initial-exec as asked in comments for r203111
llvm-svn: 204232
2014-03-19 13:24:52 +00:00
Dmitry Vyukov 3cd028c0b2 tsan: deadlock detector: add deadlock detector flags
the first flags is to enable printing of the second stack per edge

llvm-svn: 204150
2014-03-18 13:13:47 +00:00
Dmitry Vyukov b72bc2ec9c tsan: deadlock detector: print 2 stacks per deadlock edge
llvm-svn: 204149
2014-03-18 12:53:05 +00:00
Dmitry Vyukov 17fff3268d tsan: deadlock detector: add ability to ignore destruction of global mutexes
llvm-svn: 204146
2014-03-18 12:50:41 +00:00
Dmitry Vyukov 9e5341d64a tsan: lazily initialize deadlock detector runtime
this is necessaary because dlsym can call malloc, which can lock mutexes that we intercept

llvm-svn: 204141
2014-03-18 11:23:51 +00:00
Dmitry Vyukov 3458425d81 tsan: support up to 1<<20 mutexes in standalone deadlock detector
llvm-svn: 204127
2014-03-18 08:31:11 +00:00
Dmitry Vyukov 24c833e1a4 tsan: add missing interceptor for embed symbolizer
llvm-svn: 204124
2014-03-18 08:28:39 +00:00
Kostya Serebryany e7846206e8 [sanitizer] fix the deadlock detector build
llvm-svn: 204044
2014-03-17 15:16:25 +00:00
Dmitry Vyukov 119aa0ea7c tsan: add -ftls-model=initial-exec to deadlock detector flags
one way or another it must present in the process from the beginning

llvm-svn: 203111
2014-03-06 12:03:39 +00:00
Dmitry Vyukov 69bd9ca91c tsan: better error message wording in deadlock reports
llvm-svn: 203109
2014-03-06 12:02:17 +00:00
Dmitry Vyukov e73e0a04d7 tsan: fix deadlock detector build for SANITIZER_DEADLOCK_DETECTOR_VERSION=2
llvm-svn: 202977
2014-03-05 13:53:29 +00:00
Dmitry Vyukov 9b410fb627 tsan: implement new version of standalong deadlock detector
intercept pthread_cond (it is required to properly track state of mutexes)
detect cycles in mutex graph

llvm-svn: 202975
2014-03-05 13:41:21 +00:00
Dmitry Vyukov 19126f9075 tsan: add interceptors for pthread_spinlock_t and ptread_rwlock_t for deadlock detector
llvm-svn: 202947
2014-03-05 08:10:27 +00:00
Dmitry Vyukov d1d8653742 tsan: add dynamic library target for standalone deadlock detector
it's LD_PRELOAD-able

llvm-svn: 202843
2014-03-04 12:52:20 +00:00
Dmitry Vyukov 54a0303fa8 tsan: add concurrent hashmap for standalone deadlock detector
llvm-svn: 202826
2014-03-04 11:39:56 +00:00
Dmitry Vyukov 530fb9414b tsan: replace deadlock detector custom build script with cmake file
llvm-svn: 202708
2014-03-03 13:15:12 +00:00
Dmitry Vyukov 0df3a5688c tsan: remove autogenerated file
llvm-svn: 202704
2014-03-03 12:46:02 +00:00
Dmitry Vyukov 512a18e518 tsan: add standalone deadlock detector
llvm-svn: 202505
2014-02-28 14:52:20 +00:00