diff options
author | Alan Modra <amodra@gmail.com> | 2019-11-27 18:00:59 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-11-27 19:10:11 +1030 |
commit | 7f3bf38453acbabf7286dd7f8ce2688282e7b9cd (patch) | |
tree | f8f2436c5e8dc4e5deb7089b7418f76a72aab57f /bfd/ChangeLog | |
parent | e76790600aeba4939225eda32e59642ed2813ac8 (diff) | |
download | gdb-7f3bf38453acbabf7286dd7f8ce2688282e7b9cd.zip gdb-7f3bf38453acbabf7286dd7f8ce2688282e7b9cd.tar.gz gdb-7f3bf38453acbabf7286dd7f8ce2688282e7b9cd.tar.bz2 |
PR23652, Use symbols from debug bfd for _bfd_elf_find_function properly
There were a number of problems with the previous patch. Firstly,
_bfd_dwarf2_stash_syms didn't do anything when the original file had
dynamic symbols, and secondly, info found by the symbol search didn't
make it out of _bfd_elf_find_nearest_line except in the case of DWARF
functions without external linkage.
PR 23652
* dwarf2.c (_bfd_dwarf2_stash_syms): Break out of loop on finding
matching section.
(_bfd_dwarf2_find_nearest_line): Return an int, with value 2 when
returning info from the symbol table. Do the _bfd_elf_find_function
search also when !found. Call _bfd_dwarf2_stash_syms regardless of
symbols.
* elf64-alpha.c (elf64_alpha_find_nearest_line): Accept dwarf2
result of 1 only.
* elfxx-mips.c (_bfd_mips_elf_find_nearest_line): Likewise.
* libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
* libbfd.h: Regenerate.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4a0852e..ab9174d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,21 @@ 2019-11-27 Alan Modra <amodra@gmail.com> PR 23652 + * dwarf2.c (_bfd_dwarf2_stash_syms): Break out of loop on finding + matching section. + (_bfd_dwarf2_find_nearest_line): Return an int, with value 2 when + returning info from the symbol table. Do the _bfd_elf_find_function + search also when !found. Call _bfd_dwarf2_stash_syms regardless of + symbols. + * elf64-alpha.c (elf64_alpha_find_nearest_line): Accept dwarf2 + result of 1 only. + * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): Likewise. + * libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype. + * libbfd.h: Regenerate. + +2019-11-27 Alan Modra <amodra@gmail.com> + + PR 23652 * dwarf2.c (_bfd_dwarf2_stash_syms): New function. (_bfd_dwarf2_find_nearest_line): Use it here, passing syms to _bfd_elf_find_function. Call _bfd_elf_find_function in cases |