Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | tsan: use read lock instead of write in atomic operations when possible | Dmitry Vyukov | 2014-03-24 | 1 | -3/+8 | |
| | | | | llvm-svn: 204654 | |||||
* | [sanitizer] print threads in deadlock report | Kostya Serebryany | 2014-03-21 | 5 | -5/+29 | |
| | | | | llvm-svn: 204461 | |||||
* | [sanitizer] more human-readable deadlock reports | Kostya Serebryany | 2014-03-21 | 2 | -12/+32 | |
| | | | | llvm-svn: 204454 | |||||
* | [libsanitizer] Introduce flag descriptions. | Alexander Potapenko | 2014-03-20 | 1 | -26/+28 | |
| | | | | | | | | | 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 | |||||
* | tsan: remove unused function declarations | Dmitry Vyukov | 2014-03-20 | 1 | -3/+0 | |
| | | | | llvm-svn: 204328 | |||||
* | tsan: deobfuscate global ctx variable | Dmitry Vyukov | 2014-03-20 | 12 | -72/+33 | |
| | | | | llvm-svn: 204327 | |||||
* | tsan: use stack depot for goroutine creation stacks (as C++ threads do) | Dmitry Vyukov | 2014-03-20 | 4 | -20/+6 | |
| | | | | llvm-svn: 204326 | |||||
* | tsan: remove unused declaration | Dmitry Vyukov | 2014-03-20 | 1 | -2/+0 | |
| | | | | llvm-svn: 204324 | |||||
* | tsan: add test for second_deadlock_stack flag | Dmitry Vyukov | 2014-03-19 | 2 | -2/+2 | |
| | | | | llvm-svn: 204240 | |||||
* | tsan: preliminary support for Go deadlock detector | Dmitry Vyukov | 2014-03-19 | 3 | -13/+20 | |
| | | | | llvm-svn: 204228 | |||||
* | [sanitizer] deadlock detector: a) initial support for suppressions, b) be ↵ | Kostya Serebryany | 2014-03-19 | 2 | -4/+14 | |
| | | | | | | more robust in case we failed to extract a stack trace for one of the locks llvm-svn: 204225 | |||||
* | tsan: deadlock detector: add deadlock detector flags | Dmitry Vyukov | 2014-03-18 | 3 | -2/+9 | |
| | | | | | | the first flags is to enable printing of the second stack per edge llvm-svn: 204150 | |||||
* | [sanitizer] a bit more informative deadlock detector report (still lots to ↵ | Kostya Serebryany | 2014-03-18 | 1 | -8/+16 | |
| | | | | | | improve) llvm-svn: 204115 | |||||
* | [sanitizer] make the deadlock detector print 2*N stack traces on ↵ | Kostya Serebryany | 2014-03-17 | 1 | -8/+8 | |
| | | | | | | lock-order-inversion with N locks (i.e. print stack traces for both lock acquisitions in every edge in the graph). More improvements to follow llvm-svn: 204042 | |||||
* | [tsan] fox the GO build | Kostya Serebryany | 2014-03-17 | 1 | -0/+2 | |
| | | | | llvm-svn: 204037 | |||||
* | [sanitizer] fix build warnings; add an output test for the deadlock detecor | Kostya Serebryany | 2014-03-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 204035 | |||||
* | [sanitizer] print more stack traces when reporting a deadlock (even more to ↵ | Kostya Serebryany | 2014-03-17 | 1 | -0/+9 | |
| | | | | | | come) llvm-svn: 204034 | |||||
* | [sanitizer] in bitvector-based deadlock detector split onLock into ↵ | Kostya Serebryany | 2014-03-13 | 1 | -2/+4 | |
| | | | | | | onLockBefore and onLockAfter hooks llvm-svn: 203796 | |||||
* | [TSan] Hide message about re-execing under verbosity flag | Alexey Samsonov | 2014-03-13 | 1 | -4/+4 | |
| | | | | llvm-svn: 203793 | |||||
* | tsan: add interceptors for fopen64, freopen64, tmpfile, tmpfile64 | Dmitry Vyukov | 2014-03-12 | 1 | -0/+55 | |
| | | | | llvm-svn: 203647 | |||||
* | [sanitizer] Simplify interceptors with user callbacks. | Evgeniy Stepanov | 2014-03-06 | 1 | -3/+0 | |
| | | | | | | | Get rid of the context argument in UNPOISON_PARAM and INITIALIZE_RANGE. Get rid of all the thread-local contexts in interceptors. llvm-svn: 203119 | |||||
* | tsan: implement new version of standalong deadlock detector | Dmitry Vyukov | 2014-03-05 | 2 | -31/+79 | |
| | | | | | | | intercept pthread_cond (it is required to properly track state of mutexes) detect cycles in mutex graph llvm-svn: 202975 | |||||
* | Add common interceptors for memchr/memrchr | Alexey Samsonov | 2014-03-05 | 1 | -16/+0 | |
| | | | | llvm-svn: 202972 | |||||
* | tsan: move all pthread_cond interceptors into sanitizer_common | Dmitry Vyukov | 2014-03-04 | 1 | -20/+0 | |
| | | | | llvm-svn: 202813 | |||||
* | tsan: refactor deadlock detector | Dmitry Vyukov | 2014-02-28 | 7 | -93/+97 | |
| | | | | | | | | Introduce DDetector interface between the tool and the DD itself. It will help to experiment with other DD implementation, as well as reuse DD in other tools. llvm-svn: 202485 | |||||
* | [sanitizer] do not acquire a global mutex in deadlock detector when dealing ↵ | Kostya Serebryany | 2014-02-27 | 1 | -2/+0 | |
| | | | | | | with Unlock (it is essentially a thread-local operation) llvm-svn: 202401 | |||||
* | tsan: intercept vfork | Dmitry Vyukov | 2014-02-27 | 1 | -0/+18 | |
| | | | | | | | this fixes obscure false positives see the comments and the test for details llvm-svn: 202400 | |||||
* | tsan: fix internal deadlock detector for external deadlock detector | Dmitry Vyukov | 2014-02-27 | 3 | -3/+4 | |
| | | | | | | we must go deeper! llvm-svn: 202365 | |||||
* | Reapply r201910. MSVC gets __func__ defined explicitly, even though it | Joerg Sonnenberger | 2014-02-26 | 2 | -2/+2 | |
| | | | | | | can't build anything here. llvm-svn: 202297 | |||||
* | [sanitizer] minimal support for recursive locks indeadlock detector | Kostya Serebryany | 2014-02-25 | 1 | -6/+6 | |
| | | | | llvm-svn: 202153 | |||||
* | [sanitizer] support pthread_rwlock_rd* in deadlock detector | Kostya Serebryany | 2014-02-25 | 2 | -33/+37 | |
| | | | | llvm-svn: 202132 | |||||
* | [sanitizer] partially support pthread_rwlock_* (no rd* form yet) | Kostya Serebryany | 2014-02-25 | 2 | -9/+14 | |
| | | | | llvm-svn: 202128 | |||||
* | [sanitizer] add support for try_lock in deadlock detector | Kostya Serebryany | 2014-02-25 | 3 | -6/+10 | |
| | | | | llvm-svn: 202120 | |||||
* | [sanitizer] fix epoch handling in deadlock detector (before the fix, we ↵ | Kostya Serebryany | 2014-02-25 | 1 | -4/+5 | |
| | | | | | | could have had edges from locks in the previous epoch to locks in the current epoch) llvm-svn: 202118 | |||||
* | tsan: fix SIGRTMAX handling | Dmitry Vyukov | 2014-02-24 | 1 | -1/+5 | |
| | | | | llvm-svn: 202022 | |||||
* | AdjustStackSizeLinux() is used in Lsan, Tsan and Msan non-Linux-specific ↵ | Kostya Serebryany | 2014-02-24 | 1 | -1/+1 | |
| | | | | | | | | | code so it seems it should have more generic name and moved to a common scope. Renamed to AdjustStackSize. Patch by Viktor Kutuzov. llvm-svn: 202011 | |||||
* | tsan: fix compiler warning | Dmitry Vyukov | 2014-02-24 | 1 | -1/+1 | |
| | | | | | | error: address of array 'tctx->name' will always evaluate to 'true' llvm-svn: 202008 | |||||
* | Revert "Replace __FUNCTION__ with __func__, the latter being standard ↵ | Reid Kleckner | 2014-02-22 | 2 | -2/+2 | |
| | | | | | | | | | | | | C99/C++11." This reverts commit r201910. While __func__ may be standard in C++11, it was only recently added to MSVC in 2013 CTP, and LLVM supports MSVC 2012. __FUNCTION__ may not be standard, but it's *very* portable. llvm-svn: 201916 | |||||
* | Replace __FUNCTION__ with __func__, the latter being standard C99/C++11. | Joerg Sonnenberger | 2014-02-21 | 2 | -2/+2 | |
| | | | | llvm-svn: 201910 | |||||
* | [tsan] add coarse-grained lock around the DeadlockDetector. We can do better ↵ | Kostya Serebryany | 2014-02-21 | 6 | -16/+28 | |
| | | | | | | than that, but that's a start. llvm-svn: 201861 | |||||
* | [tsan] when printing a mutex, also print its address. Properly print the ↵ | Kostya Serebryany | 2014-02-19 | 4 | -9/+30 | |
| | | | | | | deadlock report. llvm-svn: 201675 | |||||
* | [sanitizer] when reporting a deadlock also report the lock cycle | Kostya Serebryany | 2014-02-18 | 1 | -10/+24 | |
| | | | | llvm-svn: 201576 | |||||
* | [sanitizer] make sure the deadlock detector survives the change of epochs; ↵ | Kostya Serebryany | 2014-02-18 | 1 | -6/+5 | |
| | | | | | | add a test and a comment llvm-svn: 201572 | |||||
* | [tsan] in deadlock detector do not register locks on their creation and ↵ | Kostya Serebryany | 2014-02-18 | 1 | -7/+4 | |
| | | | | | | unregister them on destruction; added a relevant test llvm-svn: 201568 | |||||
* | [sanitizer] simplify DeadlockDetectorTLS | Kostya Serebryany | 2014-02-17 | 2 | -2/+4 | |
| | | | | llvm-svn: 201505 | |||||
* | [tsan] rudimentary support for deadlock detector in tsan (nothing really ↵ | Kostya Serebryany | 2014-02-14 | 6 | -10/+47 | |
| | | | | | | works yet except for a single tiny test). Also rename tsan's DeadlockDetector to InternalDeadlockDetector llvm-svn: 201407 | |||||
* | [sanitizer] Use mmap to zero-fill large shadow regions. | Evgeniy Stepanov | 2014-02-14 | 1 | -1/+1 | |
| | | | | | | | | | | This is covered by existing ASan test. This does not change anything for TSan by default (but provides a flag to change the threshold size). Based on a patch by florent.bruneau here: https://code.google.com/p/address-sanitizer/issues/detail?id=256 llvm-svn: 201400 | |||||
* | [TSan] Kill tsan_symbolize_addr2line_linux.cc | Alexey Samsonov | 2014-02-12 | 3 | -202/+0 | |
| | | | | llvm-svn: 201219 | |||||
* | [Sanitizer] Teach external symbolizer to work with addr2line if ↵ | Alexey Samsonov | 2014-02-12 | 1 | -0/+2 | |
| | | | | | | llvm-symbolizer is unavailable. Allow this mode in TSan. llvm-svn: 201218 | |||||
* | [sanitizer] Use system unwinder in signal handlers on Android. | Evgeniy Stepanov | 2014-02-11 | 1 | -2/+2 | |
| | | | | | | | | | | Because of the way Bionic sets up signal stack frames, libc unwinder is unable to step through it, resulting in broken SEGV stack traces. Luckily, libcorkscrew.so on Android implements an unwinder that can start with a signal context, thus sidestepping the issue. llvm-svn: 201151 |