binutils-gdb/gdb/dwarf2
Caroline Tice d0ce17d853 gdb: fix issues with handling DWARF v5 rnglists & .dwo files.
While experimenting with GDB on DWARF 5 with split debug (dwo files),
I discovered that GDB was not reading the rnglist index
properly (it needed to be reprocessed in the same way the loclist
index does), and that there was no code for reading rnglists out of
dwo files at all.  Also, the rnglist address reading function
(dwarf2_rnglists_process) was adding the base address to all rnglist
entries, when it's only supposed to add it to the DW_RLE_offset_pair
entries (http://dwarfstd.org/doc/DWARF5.pdf, p. 53), and was not
handling several entry types.

- Added 'reprocessing' for reading rnglist index (as is done for loclist
  index).
- Added code for reading rnglists out of .dwo files.
- Added several missing rnglist forms to dwarf2_rnglists_process.
- Fixed bug that was alwayas adding base address for rnglists (only
  one form needs that).
- Updated dwarf2_rnglists_process to read rnglist out of dwo file when
  appropriate.
- Added new functions cu_debug_rnglist_section & read_rnglist_index.
- Added new testcase, dw5-rnglist-test.{cc,exp}

Special note about the new testcase:

In order for the test case to test anything meaningful, it must be
compiled with clang, not GCC.  The way to do this is as follows:

$ make check RUNTESTFLAGS="CC_FOR_TARGET=/path/to/clang CXX_FOR_TARGET=/path/to/clang++ dw5-rnglist-test.exp"

This following version of clang was used for this testing:

clang version 9.0.1-11
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

Change-Id: I3053c5ddc345720b8ed81e23a88fe537ab38748d
2020-07-16 11:37:15 -04:00
..
abbrev.c Inline abbrev lookup 2020-05-27 11:48:19 -06:00
abbrev.h Inline abbrev lookup 2020-05-27 11:48:19 -06:00
attribute.c Attribute method inlining 2020-05-27 11:48:18 -06:00
attribute.h Attribute method inlining 2020-05-27 11:48:18 -06:00
comp-unit.c gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
comp-unit.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
die.h
dwz.c
dwz.h
expr.c Add dwarf2_per_objfile to dwarf_expr_context and dwarf2_frame_cache 2020-05-27 11:15:56 -04:00
expr.h Add dwarf2_per_objfile to dwarf_expr_context and dwarf2_frame_cache 2020-05-27 11:15:56 -04:00
frame-tailcall.c Fix crash if connection drops in scoped_restore_current_thread's ctor, part 1 2020-07-10 23:53:34 +01:00
frame-tailcall.h
frame.c Add dwarf2_per_objfile to dwarf_expr_context and dwarf2_frame_cache 2020-05-27 11:15:56 -04:00
frame.h
index-cache.c gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
index-cache.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
index-common.c
index-common.h
index-write.c [gdb/symtab] Enable ada .gdb_index 2020-06-10 14:46:53 +02:00
index-write.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
leb.c
leb.h
line-header.c gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
line-header.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
loc.c gdb: add accessors to struct dynamic_prop 2020-07-12 22:58:51 -04:00
loc.h Remove dwarf2_per_cu_data::objfile () 2020-05-27 11:15:57 -04:00
macro.c gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
macro.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
read.c gdb: fix issues with handling DWARF v5 rnglists & .dwo files. 2020-07-16 11:37:15 -04:00
read.h gdb: rename dwarf2_per_objfile variables/fields to per_objfile 2020-05-29 15:15:10 -04:00
section.c
section.h
stringify.c
stringify.h