diff options
author | Christina Schimpe <christina.schimpe@intel.com> | 2022-02-18 03:09:46 -0800 |
---|---|---|
committer | Christina Schimpe <christina.schimpe@intel.com> | 2025-08-29 17:02:10 +0000 |
commit | 7a8821ff0e1badeaa284f6a6ff0b79b8e1fe5237 (patch) | |
tree | e7ae8d870198bc201a2d5b395c2f2ccd83608f1d /gdb/make-init-c | |
parent | 66dee5a4f05b8f0ac84d354ec5102c0be31a8148 (diff) | |
download | binutils-7a8821ff0e1badeaa284f6a6ff0b79b8e1fe5237.zip binutils-7a8821ff0e1badeaa284f6a6ff0b79b8e1fe5237.tar.gz binutils-7a8821ff0e1badeaa284f6a6ff0b79b8e1fe5237.tar.bz2 |
gdb: Enable displaced stepping with shadow stack on amd64 linux.
Currently, if displaced stepping is active and the single stepped instruction
is a call instruction, the return address atop the stack is the address
following the copied instruction. However, to allow normal program execution
it has to be the address following the original instruction. Due to that
reason, the return address is corrected in amd64_displaced_step_fixup and
i386_displaced_step_fixup.
For programs that are shadow-stack enabled we see a control-protection
exception, as the address on the shadow stack does not match the address
atop the stack.
Fix this by correcting the shadow stack top address as well.
Approved-By: Andrew Burgess <aburgess@redhat.com>
Approved-By: Luis Machado <luis.machado@arm.com>
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Diffstat (limited to 'gdb/make-init-c')
0 files changed, 0 insertions, 0 deletions