llvm-project/lldb
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
..
cmake [CMake] Remove Apple-specific version logic. 2019-04-17 18:23:22 +00:00
docs [Docs] Add missing leading slash 2019-04-23 16:00:43 +00:00
examples [Python] Simplify the code. NFCI. 2019-04-18 23:24:54 +00:00
include/lldb Lock accesses to OptionValueFileSpecList objects 2019-04-23 20:17:04 +00:00
lit FuncUnwinders: remove "current_offset" from function arguments 2019-04-23 09:57:14 +00:00
lldb.xcodeproj [Platform] Remove Kalimba Platform 2019-03-27 16:23:50 +00:00
lldb.xcworkspace Remove accidentally commited file in xcshareddata 2019-02-05 23:35:01 +00:00
packages/Python/lldbsuite yamlify TestMiniDumpUUID binaries 2019-04-23 08:49:39 +00:00
resources [CMake] Revised LLDB.framework builds 2019-01-04 12:46:50 +00:00
scripts modify-python-lldb: Remove \a-removing code 2019-04-23 10:04:22 +00:00
source Lock accesses to OptionValueFileSpecList objects 2019-04-23 20:17:04 +00:00
test [CMake] Make lldb-test-deps a dependency of check-lldb 2019-02-13 20:51:13 +00:00
third_party/Python/module [lldb/thirdparty] Remove unneeded files, asked by Jonas. 2019-03-12 20:41:36 +00:00
tools [tools] Only build lldb-test when needed. 2019-04-16 21:56:07 +00:00
unittests Revert "[EditLineTest] Not always TERM is available, e.g. on some bots." 2019-04-23 16:51:20 +00:00
utils [lldb-dotest] Print dotest.py invocation. 2019-04-03 01:26:38 +00:00
www Don't abort() in lldb_assert and document why. 2019-03-29 16:12:27 +00:00
.arcconfig
.clang-format
.gitignore Add .noindex to the gitignore 2019-04-05 17:57:42 +00:00
CMakeLists.txt [Cmake] Add missing dependency for running tests. 2019-04-17 23:43:01 +00:00
CODE_OWNERS.txt Fix/unify the spelling of Objective-C. 2018-06-13 16:21:24 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
use_lldb_suite_root.py