dwarf: Also match abbrev base when searching abbrev list
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 29 Oct 2020 16:19:25 +0000 (09:19 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 29 Oct 2020 16:19:35 +0000 (09:19 -0700)
commit76868f3606fb9de04f49c441c1e3cdd3e943a34d
tree9e7bc0d04d149ef513710cc6bbce11e7caad10af
parentcfaa8f76928803afda1e1862bcd0ab5f7febd647
dwarf: Also match abbrev base when searching abbrev list

A .debug_abbrev section can have multiple CUs.  When caching abbrev list,
we need to check abbrev base to support multiple CUs.

PR binutils/26808
* dwarf.c (abbrev_list): Add abbrev_base.
(new_abbrev_list): Add an abbrev_base argument and record it.
(find_abbrev_list_by_abbrev_offset): Add an abbrev_base argument
and match it.
(process_debug_info): Pass abbrev_base to new_abbrev_list and
find_abbrev_list_by_abbrev_offset.
(display_debug_abbrev): Pass 0 abbrev_base to new_abbrev_list
and find_abbrev_list_by_abbrev_offset.
* testsuite/binutils-all/x86-64/pr26808.dump: New file.
* testsuite/binutils-all/x86-64/pr26808.dwp.bz2: Likewise.
* testsuite/binutils-all/x86-64/x86-64.exp: Run PR binutils/26808
test.
binutils/ChangeLog
binutils/dwarf.c
binutils/testsuite/binutils-all/x86-64/pr26808.dump [new file with mode: 0644]
binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 [new file with mode: 0644]
binutils/testsuite/binutils-all/x86-64/x86-64.exp