aboutsummaryrefslogtreecommitdiff
path: root/include/elf
diff options
context:
space:
mode:
authorLuis Machado <luis.machado@arm.com>2022-06-28 12:57:34 +0100
committerLuis Machado <luis.machado@arm.com>2022-07-19 15:24:27 +0100
commitd0ff5ca959df91dcef16ec57154ff199fad5a4e4 (patch)
tree2c4c2a74b17daebac60d1e69725c65a854beb632 /include/elf
parent3c539d41b48e5a70cc22b0151ee79b8bd752341d (diff)
downloadgdb-d0ff5ca959df91dcef16ec57154ff199fad5a4e4.zip
gdb-d0ff5ca959df91dcef16ec57154ff199fad5a4e4.tar.gz
gdb-d0ff5ca959df91dcef16ec57154ff199fad5a4e4.tar.bz2
[AArch64] Support AArch64 MTE memory tag dumps in core files
The Linux kernel can dump memory tag segments to a core file, one segment per mapped range. The format and documentation can be found in the Linux kernel tree [1]. The following patch adjusts bfd and binutils so they can handle this new segment type and display it accordingly. It also adds code required so GDB can properly read/dump core file data containing memory tags. Upon reading, each segment that contains memory tags gets mapped to a section named "memtag". These sections will be used by GDB to lookup the tag data. There can be multiple such sections with the same name, and they are not numbered to simplify GDB's handling and lookup. There is another patch for GDB that enables both reading and dumping of memory tag segments. Tested on aarch64-linux Ubuntu 20.04. [1] Documentation/arm64/memory-tagging-extension.rst (Core Dump Support)
Diffstat (limited to 'include/elf')
-rw-r--r--include/elf/aarch64.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h
index 703a62b..e368ff2 100644
--- a/include/elf/aarch64.h
+++ b/include/elf/aarch64.h
@@ -27,6 +27,9 @@
/* Processor specific program header types. */
#define PT_AARCH64_ARCHEXT (PT_LOPROC + 0)
+/* MTE memory tag segment type. */
+#define PT_AARCH64_MEMTAG_MTE (PT_LOPROC + 0x2)
+
/* Additional section types. */
#define SHT_AARCH64_ATTRIBUTES 0x70000003 /* Section holds attributes. */