llvm-project/lldb/lit/SymbolFile/DWARF
Pavel Labath 78cfe1e6fe DWARF: Fix address range support in mixed 4+5 scenario
Summary:
debug_ranges got renamed to debug_rnglists in DWARF 5. Prior to this
patch lldb was just picking the first section it could find in the file,
and using that for all address ranges lookups. This is not correct in
case the file contains a mixture of compile units with various standard
versions (not a completely unlikely scenario).

In this patch I make lldb support reading from both sections
simulaneously, and decide the correct section to use based on the
version number of the compile unit. SymbolFileDWARF::DebugRanges is
split into GetDebugRanges and GetDebugRngLists (the first one is renamed
mainly so we can catch all incorrect usages).

I tried to structure the code similarly to how llvm handles this logic
(hence DWARFUnit::FindRnglistFromOffset/Index), but the implementations
are still relatively far from each other.

Reviewers: JDevlieghere, aprantl, clayborg

Subscribers: lldb-commits

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

llvm-svn: 361938
2019-05-29 09:22:36 +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 DWARF: Add ability to reference debug info coming from multiple sections 2019-05-16 11:07:58 +00:00
childless-compile-unit.s Fix a crash when parsing incorrect DWARF 2018-11-14 11:12:40 +00:00
debug-line-basic.s [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +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: lld to debug-types-address-ranges.s 2019-05-23 10:46:35 +00:00
debug-types-basic.test DWARF: Implement DW_AT_signature lookup for type unit support 2019-05-24 08:11:12 +00:00
debug-types-expressions.test DWARF: Implement DW_AT_signature lookup for type unit support 2019-05-24 08:11:12 +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 DWARF: Implement DW_AT_signature lookup for type unit support 2019-05-24 08:11:12 +00:00
debug_aranges-empty-section.s DWARFContext: Return empty data extractors instead of null pointers 2019-05-16 11:19:02 +00:00
debug_loc.s DWARF: Add a simple test exercising debug_loc parsing 2019-05-27 13:23:23 +00:00
debug_ranges-missing-section.s DWARF: Fix address range support in mixed 4+5 scenario 2019-05-29 09:22:36 +00:00
debug_ranges.s DWARF: Add debug_ranges/rnglists tests 2019-05-22 11:44:36 +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 DWARF: Add debug_ranges/rnglists tests 2019-05-22 11:44:36 +00:00
dir-separator-no-comp-dir-relative-name.s [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +00:00
dir-separator-no-comp-dir.s [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +00:00
dir-separator-posix.s [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +00:00
dir-separator-windows.s [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +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 DWARF: Add ability to reference debug info coming from multiple sections 2019-05-16 11:07:58 +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 [lldb] [test] Adjust XFAIL list to match buildbot results 2019-03-09 12:47:38 +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 Fix some issues with LLDB's lit configuration files. 2018-11-19 15:12:34 +00:00
lit.local.cfg DWARF: Introduce DWARFTypeUnit class 2019-05-22 09:09:39 +00:00
parallel-indexing-stress.s DWARFContext: Make loading of sections thread-safe 2019-05-24 08:04:03 +00:00