aboutsummaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
authorGuinevere Larsen <blarsen@redhat.com>2023-11-01 17:29:22 +0100
committerGuinevere Larsen <blarsen@redhat.com>2023-12-19 13:57:16 +0100
commit25bb95ea6ddc3cef73da3823efe4acfce4e56d2c (patch)
treed321d63f1aec73457b22a8053a1a4b8fdec0cc85 /elfcpp
parente875d98ee5162d23165e243939092401f10dab9b (diff)
downloadgdb-25bb95ea6ddc3cef73da3823efe4acfce4e56d2c.zip
gdb-25bb95ea6ddc3cef73da3823efe4acfce4e56d2c.tar.gz
gdb-25bb95ea6ddc3cef73da3823efe4acfce4e56d2c.tar.bz2
gdb: register frame_destroyed function for amd64 gdbarch
gdbarches usually register functions to check when a frame is destroyed which is used with software watchpoints, since the expression of the watchpoint is no longer vlaid at this point. On amd64, this wasn't done anymore because GCC started using CFA for variable locations instead. However, clang doesn't use the CFA and instead relies on specifying when an epilogue has started, meaning software watchpoints get a spurious hit when a frame is destroyed. This patch re-adds the code to register the function that detects when a frame is destroyed, but only uses this when the producer is LLVM, so gcc code isn't affected. The logic that identifies the epilogue has been factored out into the new function amd64_stack_frame_destroyed_p_1, so the frame sniffer can call it directly, and its behavior isn't changed. This can also remove the XFAIL added to gdb.python/pq-watchpoint tests that handled this exact flaw in clang. Co-Authored-By: Andrew Burgess <aburgess@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'elfcpp')
0 files changed, 0 insertions, 0 deletions