aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorLuis Machado <luis.machado@linaro.org>2021-11-01 17:14:26 -0300
committerLuis Machado <luis.machado@arm.com>2022-04-06 13:43:46 +0100
commita01567f4f7fbbc6ce1492b359c762fcf39e71b4b (patch)
treef1bbf391712b6fd5c776eb559a438f5c2f538f37 /gdb/doc
parentc8154ce0d6942e5988076edd674036ff384ab433 (diff)
downloadgdb-a01567f4f7fbbc6ce1492b359c762fcf39e71b4b.zip
gdb-a01567f4f7fbbc6ce1492b359c762fcf39e71b4b.tar.gz
gdb-a01567f4f7fbbc6ce1492b359c762fcf39e71b4b.tar.bz2
Enable ARMv8.1-m PACBTI support
This set of changes enable support for the ARMv8.1-m PACBTI extensions [1]. The goal of the PACBTI extensions is similar in scope to that of a-profile PAC/BTI (aarch64 only), but the underlying implementation is different. One important difference is that the pointer authentication code is stored in a separate register, thus we don't need to mask/unmask the return address from a function in order to produce a correct backtrace. The patch introduces the following modifications: - Extend the prologue analyser for 32-bit ARM to handle some instructions from ARMv8.1-m PACBTI: pac, aut, pacg, autg and bti. Also keep track of return address signing/authentication instructions. - Adds code to identify object file attributes that indicate the presence of ARMv8.1-m PACBTI (Tag_PAC_extension, Tag_BTI_extension, Tag_PACRET_use and Tag_BTI_use). - Adds support for DWARF pseudo-register RA_AUTH_CODE, as described in the aadwarf32 [2]. - Extends the dwarf unwinder to track the value of RA_AUTH_CODE. - Decorates backtraces with the "[PAC]" identifier when a frame has signed the return address. - Makes GDB aware of a new XML feature "org.gnu.gdb.arm.m-profile-pacbti". This feature is not included as an XML file on GDB's side because it is only supported for bare metal targets. - Additional documentation. [1] https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension [2] https://github.com/ARM-software/abi-aa/blob/main/aadwarf32/aadwarf32.rst
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/gdb.texinfo7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e50618f..e4685cd 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -25409,6 +25409,7 @@ target process.
@subsubsection AArch64 Pointer Authentication.
@cindex AArch64 Pointer Authentication.
+@anchor{AArch64 PAC}
When @value{GDBN} is debugging the AArch64 architecture, and the program is
using the v8.3-A feature Pointer Authentication (PAC), then whenever the link
@@ -46604,6 +46605,12 @@ quad-precision registers from pairs of double-precision registers.
If this feature is present, @samp{org.gnu.gdb.arm.vfp} must also
be present and include 32 double-precision registers.
+The @samp{org.gnu.gdb.arm.m-profile-pacbti} feature is optional, and
+acknowledges support for the ARMv8.1-m PACBTI extensions. @value{GDBN}
+will track return address signing states and will decorate backtraces using
+the [PAC] marker, similar to AArch64's PAC extension.
+@xref{AArch64 PAC}.
+
@node i386 Features
@subsection i386 Features
@cindex target descriptions, i386 features