Go to file
Frederic Riss acbf0058e9 Lock accesses to OptionValueFileSpecList objects
Before a Debugger gets a Target, target settings are routed to a global set
of settings. Even without this, some part of the LLDB which exist independently
of the Debugger object (the Module cache, the Symbol vendors, ...) access
directly the global default store for those settings.

Of course, if you modify one of those global settings while they are being read,
bad things happen. We see this quite a bit with FileSpecList settings. In
particular, we see many cases where one debug session changes
target.exec-search-paths while another session starts up and it crashes when
one of those accesses invalid FileSpecs.

This patch addresses the specific FileSpecList issue by adding locking to
OptionValueFileSpecList and never returning by reference.

Reviewers: clayborg

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D60468

llvm-svn: 359028
2019-04-23 20:17:04 +00:00
clang [ThinLTO] Pass down opt level to LTO backend and handle -O0 LTO in new PM 2019-04-23 18:56:19 +00:00
clang-tools-extra [clangd] Support dependent bases in type hierarchy 2019-04-22 01:38:53 +00:00
compiler-rt [TSan] Support fiber API on macOS 2019-04-20 00:18:44 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc travis: Add LLVM-8 build 2019-03-27 21:28:31 +00:00
libcxx Fix namespace name conflict with GCC 2019-04-23 18:23:33 +00:00
libcxxabi [libc++abi] Don't use a .sh.cpp test for uncaught_exception 2019-04-23 00:03:34 +00:00
libunwind [NFC] Fix typo in debug log 2019-04-22 15:40:50 +00:00
lld [WebAssembly] Fix typo in relocation checking 2019-04-23 14:49:38 +00:00
lldb Lock accesses to OptionValueFileSpecList objects 2019-04-23 20:17:04 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [ObjC][ARC] Check the basic block size before calling 2019-04-23 19:49:03 +00:00
openmp Use correct way to test for MIPS arch after rOMP355687 2019-04-22 19:20:46 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly Apply include-what-you-use #include removal suggestions. NFC. 2019-03-28 20:19:49 +00:00
pstl [pstl] Add a serial backend for the PSTL 2019-04-18 18:20:19 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.gitignore Add a reduced copy of the llvm .gitignore 2019-04-09 00:52:49 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.