llvm-project/lldb/lit/SymbolFile/DWARF
Pavel Labath fcad3bc415 DWARF: Add support for type units+split dwarf combo
Summary:
With the last round of refactors, supporting type units in dwo files
becomes almost trivial. This patch contains a couple of small fixes,
which taken as a whole make type units work in the split dwarf scenario
(both DWARF4 and DWARF5):
- DWARFContext: make sure we actually read the debug_types.dwo section
- DWARFUnit: set string offsets base on all units in the dwo file, not
  just the main CU
- ManualDWARFIndex: index all units in the file
- SymbolFileDWARFDwo: Search for the single compile unit in the file, as
  we can no longer assume it will be the first one

The last part makes it obvious that there is still some work to be done
here, namely that we do not support dwo files with multiple compile
units. That is something that should be easier after the DIERef
refactors, but it still requires more work.

Tests are added for the type units+split dwarf + dwarf4/5 scenarios, as
well as a test that checks we behave reasonably in the presence of dwo
files with multiple CUs.

Reviewers: clayborg, JDevlieghere, aprantl

Subscribers: arphaman, lldb-commits

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

llvm-svn: 364274
2019-06-25 06:59:48 +00:00
..
Inputs DWARF: Implement DW_AT_signature lookup for type unit support 2019-05-24 08:11:12 +00:00
apple-index-is-used.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
array-sizes.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
childless-compile-unit.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug-line-basic.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug-names-compressed.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
debug-types-address-ranges.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug-types-basic.test DWARF: Add support for type units+split dwarf combo 2019-06-25 06:59:48 +00:00
debug-types-dwarf5.s DWARF: Don't create lldb CompileUnits for DWARF type units 2019-06-13 11:22:47 +00:00
debug-types-expressions.test DWARF: Add support for type units+split dwarf combo 2019-06-25 06:59:48 +00:00
debug-types-line-tables.s DWARF: Don't create lldb CompileUnits for DWARF type units 2019-06-13 11:22:47 +00:00
debug-types-missing-signature.test DWARF: Implement DW_AT_signature lookup for type unit support 2019-05-24 08:11:12 +00:00
debug-types-signature-loop.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug_aranges-empty-section.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug_loc.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug_ranges-missing-section.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug_ranges.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
debug_ranges_and_rnglists.test DWARF: Fix address range support in mixed 4+5 scenario 2019-05-29 09:22:36 +00:00
debug_rnglists.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
dir-separator-no-comp-dir-relative-name.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
dir-separator-no-comp-dir.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
dir-separator-posix.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
dir-separator-windows.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
dwarf5-index-is-used.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
dwarf5-partial-index.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
dwarf5_locations.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
find-basic-function.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-basic-namespace.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-basic-type.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-basic-variable.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-function-regex.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-inline-method.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
find-method-local-struct.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-method.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-qualified-variable.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-type-in-function.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-variable-dwo.cpp Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
find-variable-file.cpp DWARF: Add "dwo_num" field to the DIERef class 2019-06-21 07:56:50 +00:00
forward-declarations.s DWARF: Share line tables of type units 2019-06-12 11:29:50 +00:00
lit.local.cfg DWARF: Introduce DWARFTypeUnit class 2019-05-22 09:09:39 +00:00
parallel-indexing-stress.s Add "REQUIRES: x86" to DWARF assembly tests 2019-06-10 15:08:00 +00:00
split-dwarf-inlining.cpp Ignore DIEs in the skeleton unit in a DWO scenario 2019-06-05 07:29:55 +00:00
split-dwarf-multiple-cu.ll DWARF: Add support for type units+split dwarf combo 2019-06-25 06:59:48 +00:00