llvm-project/lldb/source
Pavel Labath 67f63f3f7c [lldb/DWARF] Re-enable basic dwp support
Summary:
This patch removes the bitrotted SymbolFileDWARF(Dwo)Dwp classes, and
replaces them with dwp support implemented directly inside
SymbolFileDWARFDwo, in a manner mirroring the implementation in llvm.
This patch does:
- add support for the .debug_cu_index section to our DWARFContext
- adds a llvm::DWARFUnitIndex argument to the DWARFUnit constructors.
  This argument is used to look up the offsets of the debug_info and
  debug_abbrev contributions in the sections of the dwp file.
- makes sure the creation of the DebugInfo object as well as the initial
  discovery of DWARFUnits is thread-safe, as we can now call this
  concurrently when doing parallel indexing.

This patch does not:
- use the DWARFUnitIndex to search for other kinds of contributions
  (debug_loc, debug_ranges, etc.). This means that units which reference
  these sections will not work correctly. These will be handled by
  follow-up patches, but even the present level of support is sufficient
  to enable basic functionality.
- Make the llvm::DWARFContext thread-safe. Right now, it just avoids this
  problem by ensuring everything is initialized ahead of time. However,
  this is something we will run into more often as we try to use more of
  llvm, and so I plan to start looking into our options here.

Reviewers: JDevlieghere, aprantl, clayborg

Subscribers: mgorny, mgrang, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D73783
2020-02-17 14:10:36 +01:00
..
API [LLDB] Fix GCC warnings about extra semicolons. NFC. 2020-02-17 14:16:46 +02:00
Breakpoint [lldb][NFC] Remove several inefficient ConstString -> const char * -> StringRef conversions 2020-02-11 09:14:41 +01:00
Commands [lldb][NFC] Move common_completions mapping out of CommandCompletions header. 2020-02-12 09:48:51 +01:00
Core [lldb][NFC] Remove GetConstTypeName and GetConstQualifiedTypeName from CompilerType 2020-02-12 09:49:39 +01:00
DataFormatters [lldb/StringPrinter] Avoid reading garbage in uninitialized strings 2020-02-12 11:24:03 -08:00
Expression [lldb] Delete the SharingPtr class 2020-02-11 13:23:18 +01:00
Host [lldb/Editline] Fix mistake in HistoryOperation mapping 2020-02-14 14:07:29 -08:00
Initialization [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
Interpreter [lldb][NFC] Remove ConstString -> const char * -> StringRef conversions when calling Stream::Indent 2020-02-11 13:51:41 +01:00
Plugins [lldb/DWARF] Re-enable basic dwp support 2020-02-17 14:10:36 +01:00
Symbol [lldb][NFC] Remove GetConstTypeName and GetConstQualifiedTypeName from CompilerType 2020-02-12 09:49:39 +01:00
Target [lldb] Delete register info definitions in the x86_64 ABI classes 2020-02-17 14:01:36 +01:00
Utility [lldb][NFC] Remove Stream::Indent(const char *) overload in favor of the StringRef version 2020-02-11 13:29:32 +01:00
CMakeLists.txt Make LLVM_APPEND_VC_REV=OFF affect clang, lld, and lldb as well. 2020-01-16 19:04:08 -05:00
lldb.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00