llvm-project/lldb/source/Symbol
Vedant Kumar 6cfc90b9b7 [Function] Lock the function when parsing call site info
Summary:
DWARF-parsing methods in SymbolFileDWARF which update module state
typically take the module lock. ParseCallEdgesInFunction doesn't do
this, but higher-level locking within lldb::Function (which owns the
storage for parsed call edges) is necessary.

The lack of locking could explain some as-of-yet unreproducible crashes
which occur in Function::GetTailCallingEdges(). In these crashes, the
`m_call_edges` vector is non-empty but contains a nullptr, which
shouldn't be possible. (If this vector is non-empty, it _must_ contain a
non-null unique_ptr.)

This may address rdar://55622443 and rdar://65119458.

Reviewers: jasonmolenda, friss, jingham

Subscribers: aprantl, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D83359
2020-07-09 10:37:09 -07:00
..
ArmUnwindInfo.cpp [lldb] NFC: Fix trivial typo in comments, documents, and messages 2020-04-07 01:06:16 +09:00
Block.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
CMakeLists.txt [lldb] Move clang-based files out of Symbol 2020-01-31 12:20:10 -08:00
CompactUnwindInfo.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
CompileUnit.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
CompilerDecl.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
CompilerDeclContext.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
CompilerType.cpp [lldb][NFC] Remove unused DEPTH_INCREMENT in CompilerType.cpp 2020-06-19 16:35:03 +02:00
DWARFCallFrameInfo.cpp [lldb] Remove DataExtractor::GetPointer 2020-02-18 10:38:41 +01:00
DebugMacros.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
DeclVendor.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
Declaration.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
FuncUnwinders.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
Function.cpp [Function] Lock the function when parsing call site info 2020-07-09 10:37:09 -07:00
LineEntry.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
LineTable.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
LocateSymbolFile.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
LocateSymbolFileMacOSX.cpp [lldb/Symbol] Reimplement Symbols::FindSymbolFileInBundle to use the VFS 2020-04-03 09:29:22 -07:00
ObjectFile.cpp [lldb] Add boilerplate to recognize the .debug_tu_index section 2020-02-20 13:44:21 +01:00
PostfixExpression.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
Symbol.cpp [lldb] s/ExecutionContext/Target in Disassembler 2020-03-05 14:46:39 +01:00
SymbolContext.cpp [lldb] Use std::make_unique<> (NFC) 2020-06-24 17:48:40 -07:00
SymbolFile.cpp [lldb][NFC] Make all CompilerDeclContext parameters references instead of pointers 2020-02-18 08:58:36 +01:00
SymbolVendor.cpp [lldb] Use std::make_unique<> (NFC) 2020-06-24 17:48:40 -07:00
Symtab.cpp [lldb][NFCI] Remove unused LanguageType parameters 2020-01-30 21:57:23 -08:00
Type.cpp Allow lldb-test to combine -find with -dump-clang-ast 2020-04-17 11:01:20 -07:00
TypeList.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
TypeMap.cpp Allow lldb-test to combine -find with -dump-clang-ast 2020-04-17 11:01:20 -07:00
TypeSystem.cpp Preserve the owning module information from DWARF in the synthesized AST 2020-04-09 11:09:44 -07:00
UnwindPlan.cpp [lldb] Remove custom DWARF expression printing code 2020-05-25 16:09:25 +02:00
UnwindTable.cpp [lldb] Use std::make_unique<> (NFC) 2020-06-24 17:48:40 -07:00
Variable.cpp Replace std::string::find == 0 with StringRef::startswith 2020-03-31 21:01:09 +02:00
VariableList.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00