Commit Graph

24 Commits

Author SHA1 Message Date
Dmitry Vyukov e07dc7d1fe tsan: intercept _exit so that we can override exit status
llvm-svn: 191898
2013-10-03 14:00:46 +00:00
Dmitry Vyukov 439a904515 tsan: support allocator_may_return_null flag
Fixes https://code.google.com/p/thread-sanitizer/issues/detail?id=29

llvm-svn: 191482
2013-09-27 02:31:23 +00:00
Dmitry Vyukov 97f0eae0a5 tsan/msan: add halt_on_error flag
If halt_on_error==true, program terminates after reporting first error.

llvm-svn: 188279
2013-08-13 15:33:00 +00:00
Dmitry Vyukov f2cbda4082 tsan: print statistics about benign race annotations
(total count, unique, matched) if requested with print_benign=1
flag.

llvm-svn: 178245
2013-03-28 16:21:19 +00:00
Dmitry Vyukov b365d40415 tsan: print matched suppressions if print_suppressions=1 flag is provided
llvm-svn: 178159
2013-03-27 17:59:57 +00:00
Dmitry Vyukov 2c3b919ad3 tsan: add flag to control symbolizer flush frequency
llvm-svn: 177638
2013-03-21 13:01:50 +00:00
Dmitry Vyukov 52f0e4e1a0 tsan: add flag to not report races between atomic and plain memory accesses
llvm-svn: 174165
2013-02-01 10:06:56 +00:00
Alexey Samsonov 49a32c1d08 [Sanitizer] update style checker script and fix namespace style warnings
llvm-svn: 173910
2013-01-30 07:45:58 +00:00
Dmitry Vyukov 42230ae216 tsan: add io_sync flag that controls amount of IO synchronization
llvm-svn: 170427
2012-12-18 12:20:55 +00:00
Dmitry Vyukov d05418eac6 tsan: suppress weird race reports when JVM is embed into the process
llvm-svn: 169019
2012-11-30 17:45:53 +00:00
Dmitry Vyukov 71d759d392 tsan: intercept mlock() because of the kernel bug
llvm-svn: 168987
2012-11-30 06:50:15 +00:00
Dmitry Vyukov eb3d36e649 tsan: address several review comments
llvm-svn: 168789
2012-11-28 13:01:32 +00:00
Dmitry Vyukov 3374e3f874 tsan: add log_path parameter (similar to asan)
remove old log_fileno

llvm-svn: 168788
2012-11-28 12:56:52 +00:00
Dmitry Vyukov e1a7f338a3 tsan: dynamic history size
introduces history_size parameter that can be used to control trace size at startup

llvm-svn: 168786
2012-11-28 12:19:50 +00:00
Dmitry Vyukov ea4f1990e1 tsan: add flag to suppress all reports (useful for benchmarking)
llvm-svn: 167532
2012-11-07 16:14:12 +00:00
Alexey Samsonov fdff4a8e0b [TSan] add support for running external symbolizer other than addr2line (for testing purposes)
llvm-svn: 163297
2012-09-06 08:48:43 +00:00
Dmitry Vyukov 77196efb1e tsan: add flag to disable reporting of destruction of locked mutexes (some programs use that on a regular basis)
llvm-svn: 162024
2012-08-16 15:12:35 +00:00
Alexey Samsonov 78a3bbc82c [TSan] add a new option 'use_internal_symbolizer' that allows to choose between addr2line-based and llvm-based symbolizer w/o having to rebuild the runtime. This is hopefully a temporary solution that simplifies testing process. In the end, we should leave a single symbolizer.
llvm-svn: 159730
2012-07-05 07:18:29 +00:00
Alexey Samsonov b1c3991915 [TSan] Add a comment that tsan_flags.h may be included in the user code, and therefore shouldn't include other headers from TSan or common sanitizer runtime. User may need tsan_flags.h to provide its implementation of __tsan::OverrideFlags
llvm-svn: 158708
2012-06-19 08:57:53 +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
Dmitry Vyukov 302cebb8f1 tsan: add shadow memory flush + fix few bugs
llvm-svn: 157270
2012-05-22 18:07:45 +00:00
Dmitry Vyukov 15710c9220 tsan: simple memory profiler
llvm-svn: 157248
2012-05-22 11:33:03 +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
Kostya Serebryany 4ad375f0a9 [tsan] First commit of ThreadSanitizer (TSan) run-time library.
Algorithm description: http://code.google.com/p/thread-sanitizer/wiki/ThreadSanitizerAlgorithm

Status:
The tool is known to work on large real-life applications, but still has quite a few rough edges.
Nothing is guaranteed yet.

The tool works on x86_64 Linux.
Support for 64-bit MacOS 10.7+ is planned for late 2012.
Support for 32-bit OSes is doable, but problematic and not yet planed.

Further commits coming:
  - tests
  - makefiles
  - documentation
  - clang driver patch

The code was previously developed at http://code.google.com/p/data-race-test/source/browse/trunk/v2/
by Dmitry Vyukov and Kostya Serebryany with contributions from
Timur Iskhodzhanov, Alexander Potapenko, Alexey Samsonov and Evgeniy Stepanov.

llvm-svn: 156542
2012-05-10 13:48:04 +00:00