public inbox for gdb-cvs@sourceware.org help / color / mirror / Atom feed
From: John Baldwin <jhb@sourceware.org> To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Read the tpidr register from NT_ARM_TLS core dump notes on Linux Aarch64. Date: Tue, 3 May 2022 23:11:09 +0000 (GMT) [thread overview] Message-ID: <20220503231109.B00083858010@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=224151d7748ef13df82878067266cfaa9861e360 commit 224151d7748ef13df82878067266cfaa9861e360 Author: John Baldwin <jhb@FreeBSD.org> Date: Tue May 3 16:05:10 2022 -0700 Read the tpidr register from NT_ARM_TLS core dump notes on Linux Aarch64. Diff: --- gdb/aarch64-linux-tdep.c | 21 ++++++++++++++++++++- gdb/aarch64-linux-tdep.h | 3 +++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 8cfb64d9f4a..dbebcd4f0e0 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -749,6 +749,24 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, AARCH64_LINUX_SIZEOF_MTE_REGSET, &aarch64_linux_mte_regset, "MTE registers", cb_data); } + + if (tdep->has_tls ()) + { + const struct regcache_map_entry tls_regmap[] = + { + { 1, tdep->tls_regnum, 8 }, + { 0 } + }; + + const struct regset aarch64_linux_tls_regset = + { + tls_regmap, regcache_supply_regset, regcache_collect_regset + }; + + cb (".reg-aarch-tls", AARCH64_LINUX_SIZEOF_TLSREGSET, + AARCH64_LINUX_SIZEOF_TLSREGSET, &aarch64_linux_tls_regset, + "TLS register", cb_data); + } } /* Implement the "core_read_description" gdbarch method. */ @@ -757,13 +775,14 @@ static const struct target_desc * aarch64_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd) { + asection *tls = bfd_get_section_by_name (abfd, ".reg-aarch-tls"); CORE_ADDR hwcap = linux_get_hwcap (target); CORE_ADDR hwcap2 = linux_get_hwcap2 (target); bool pauth_p = hwcap & AARCH64_HWCAP_PACA; bool mte_p = hwcap2 & HWCAP2_MTE; return aarch64_read_description (aarch64_linux_core_read_vq (gdbarch, abfd), - pauth_p, mte_p, false); + pauth_p, mte_p, tls != nullptr); } /* Implementation of `gdbarch_stap_is_single_operand', as defined in diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h index 8ae33efc605..9a7e4339dba 100644 --- a/gdb/aarch64-linux-tdep.h +++ b/gdb/aarch64-linux-tdep.h @@ -39,6 +39,9 @@ /* The MTE regset consists of a 64-bit register. */ #define AARCH64_LINUX_SIZEOF_MTE_REGSET (8) +/* The TLS regset consists of a single register. */ +#define AARCH64_LINUX_SIZEOF_TLSREGSET (X_REGISTER_SIZE) + extern const struct regset aarch64_linux_gregset; extern const struct regset aarch64_linux_fpregset;
reply other threads:[~2022-05-03 23:11 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220503231109.B00083858010@sourceware.org \ --to=jhb@sourceware.org \ --cc=gdb-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).