Commit Graph

13 Commits

Author SHA1 Message Date
Kuba Brecka c359d5ca08 In AddressSanitizer and ThreadSanitizer, let's explicitly set the language of the expression we're evaluating.
llvm-svn: 274621
2016-07-06 11:46:20 +00:00
Devin Coughlin a10ab76b16 [tsan] Prefer mangled name looking up variable declaration for racy address
For Thread Sanitizer reports, LLDB tries to find a global variable declaration
corresponding to the racy address in order to provide a filename and line
number. This commit changes the lookup of the variable to use the mangled
name for lookup and fall back to the demangled version if unavailable. This
is needed to report locations of races on Swift global variables.

I've also added a test to make sure we look up C++ globals correctly.

rdar://problem/26459401

Differential Revision: http://reviews.llvm.org/D20760

llvm-svn: 271433
2016-06-01 21:32:45 +00:00
Kuba Brecka 042975183e Reword the "Happened at" TSan-reported thread to contain a thread id.
llvm-svn: 270608
2016-05-24 20:35:28 +00:00
Kuba Brecka 6602e692ef Improve wording in TSan reports involving global variables. Don't repeat hex addresses that are the same.
llvm-svn: 270588
2016-05-24 17:47:23 +00:00
Kuba Brecka 1a349b8d65 Reword ThreadSanitizer messages to use a lowercase 't' in thread names when in the middle of a sentence.
llvm-svn: 270365
2016-05-22 14:56:33 +00:00
Kuba Brecka 52ded8072a Reword ThreadSanitizer message for invalid mutex reports.
llvm-svn: 270364
2016-05-22 14:32:45 +00:00
Kuba Brecka 5c7b363534 Improve wording and capitalization of TSan thread names.
llvm-svn: 268193
2016-05-01 11:26:06 +00:00
Kuba Brecka bcdce3fd85 Provide location information (file name, line number) in TSan reports about global variables.
llvm-svn: 267894
2016-04-28 15:27:10 +00:00
Kuba Brecka 5b31c423a0 Renumber ThreadSanitizer-provided thread IDs to match LLDB thread numbers.
llvm-svn: 267133
2016-04-22 10:40:14 +00:00
Kuba Brecka 1aad8fb772 Provide more information in ThreadSanitizer's JSON data. Move remaining TSan logic from SBThread to InstrumentationRuntime plugin.
llvm-svn: 265905
2016-04-10 18:57:38 +00:00
Kuba Brecka 058c302e0a Fix the ThreadSanitizer support to avoid creating empty SBThreads and to not crash when thread_id is unavailable. Plus a whitespace fix.
llvm-svn: 264854
2016-03-30 10:50:24 +00:00
Pavel Labath 1b46a72eb2 Fix warning in ThreadSanitizerRuntime
llvm-svn: 264849
2016-03-30 09:42:59 +00:00
Kuba Brecka 6a83143650 Add ThreadSanitizer debugging support.
This patch adds ThreadSanitizer support into LLDB:
- Adding a new InstrumentationRuntime plugin, ThreadSanitizerRuntime, in the same way ASan is implemented.
- A breakpoint stops in `__tsan_on_report`, then we extract all sorts of information by evaluating an expression. We then populate this into StopReasonExtendedInfo.
- SBThread gets a new API, SBThread::GetStopReasonExtendedBacktraces(), which returns TSan’s backtraces in the form of regular SBThreads. Non-TSan stop reasons return an empty collection.
- Added some test cases.

Reviewed by Greg Clayton.

llvm-svn: 264162
2016-03-23 15:36:22 +00:00