aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.reverse/step-reverse.c
diff options
context:
space:
mode:
authorBruno Larsen <blarsen@redhat.com>2022-08-19 15:11:28 +0200
committerBruno Larsen <blarsen@redhat.com>2022-10-21 12:49:26 +0200
commit49d7cd733a7f1b87aa1d40318b3d7c2b65aca5ac (patch)
tree9b2192f62d8eb5eb4ed79e94aaf23b6f833833d8 /gdb/testsuite/gdb.reverse/step-reverse.c
parent7c0cca765e4630a5b3b8df285c7b0f90b6cb41cc (diff)
downloadbinutils-49d7cd733a7f1b87aa1d40318b3d7c2b65aca5ac.zip
binutils-49d7cd733a7f1b87aa1d40318b3d7c2b65aca5ac.tar.gz
binutils-49d7cd733a7f1b87aa1d40318b3d7c2b65aca5ac.tar.bz2
Change calculation of frame_id by amd64 epilogue unwinder
When GDB is stopped at a ret instruction and no debug information is available for unwinding, GDB defaults to the amd64 epilogue unwinder, to be able to generate a decent backtrace. However, when calculating the frame id, the epilogue unwinder generates information as if the return instruction was the whole frame. This was an issue especially when attempting to reverse debug, as GDB would place a step_resume_breakpoint from the epilogue of a function if we were to attempt to skip that function, and this breakpoint should ideally have the current function's frame_id to avoid other problems such as PR record/16678. This commit changes the frame_id calculation for the amd64 epilogue, so that it is always the same as the dwarf2 unwinder's frame_id. It also adds a test to confirm that the frame_id will be the same, regardless of using the epilogue unwinder or not, thanks to Andrew Burgess. Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb/testsuite/gdb.reverse/step-reverse.c')
0 files changed, 0 insertions, 0 deletions