aboutsummaryrefslogtreecommitdiff
path: root/gdb/ui-file.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2021-11-19 10:12:44 -0700
committerTom Tromey <tromey@adacore.com>2022-03-28 13:31:22 -0600
commit48ac197b0c209ccf1f2de9704eb6cdf7c5c73a8e (patch)
tree9add73f002b76696ce8dc9eb1ea5eff3678c813d /gdb/ui-file.c
parenta0e0ca7044f240c0b56a829ed762f5efd0854fc6 (diff)
downloadbinutils-48ac197b0c209ccf1f2de9704eb6cdf7c5c73a8e.zip
binutils-48ac197b0c209ccf1f2de9704eb6cdf7c5c73a8e.tar.gz
binutils-48ac197b0c209ccf1f2de9704eb6cdf7c5c73a8e.tar.bz2
Handle multiple addresses in call_site_target
A large customer program has a function that is partitioned into hot and cold parts. A variable in a callee of this function is described using DW_OP_GNU_entry_value, but gdb gets confused when trying to find the caller. I tracked this down to dwarf2_get_pc_bounds interpreting the function's changes so that the returned low PC is the "wrong" function. Intead, when processing DW_TAG_call_site, the low PC of each range in DW_AT_ranges should be preserved in the call_site_target. This fixes the variable lookup in the test case I have. I didn't write a standalone test for this as it seemed excessively complicated.
Diffstat (limited to 'gdb/ui-file.c')
0 files changed, 0 insertions, 0 deletions