From: John Baldwin <jhb@FreeBSD.org>
To: gdb-patches@sourceware.org
Subject: [PATCH v5 00/19] Handle variable XSAVE layouts
Date: Thu, 27 Apr 2023 14:00:54 -0700 [thread overview]
Message-ID: <20230427210113.45380-1-jhb@FreeBSD.org> (raw)
Changes since V4:
- Added a new target method to fetch the XSAVE layout rather than
using an internal TARGET_OBJECT_X86_XSAVE_LAYOUT. Patch 1 from V4
is now split into two patches: one to add the new structure, the
second adds the new target method and stores it in the tdep.
- Patch 6 is a quick fixup for x86-fbsd-nat.h
- Patches 7 and 8 are new and fix an issue Simon Marchi noticed where
FreeBSD and Linux native architectures can run into errors due to
using ptrace in the target read_description method if the current
inferior has no live process. The general rule there is to just use
a default tdesc for the architecture if inferior_ptid is null. I've
only compiled/tested this on Linux and FreeBSD x86-64.
- Patches 15 and 17 for gdbserver have been largely reworked to make
use of C inheritance to remove the need for changes to the FXSAVE
portion of the XSAVE area.
- Patches 16 and 19 are new fixes for bugs I noticed specific to
AVX-512 handling in gdbserver.
Aleksandar Paunovic (2):
gdbserver: Refactor the legacy region within the xsave struct
gdbserver: Use x86_xstate_layout to parse the XSAVE extended state
area.
John Baldwin (17):
x86: Add an x86_xsave_layout structure to handle variable XSAVE
layouts.
gdb: Store an x86_xsave_layout in i386_gdbarch_tdep.
core: Support fetching x86 XSAVE layout from architectures.
nat/x86-cpuid.h: Add x86_cpuid_count wrapper around __get_cpuid_count.
x86 nat: Add helper functions to save the XSAVE layout for the host.
x86-fbsd-nat: Add missing public label.
*-fbsd-nat: Handle null inferior in read_description.
*-linux-nat: Handle null inferior in read_description.
gdb: Update x86 FreeBSD architectures to support XSAVE layouts.
gdb: Support XSAVE layouts for the current host in the FreeBSD x86
targets.
gdb: Update x86 Linux architectures to support XSAVE layouts.
gdb: Support XSAVE layouts for the current host in the Linux x86
targets.
gdb: Use x86_xstate_layout to parse the XSAVE extended state area.
gdbserver: Add a function to set the XSAVE mask and size.
gdbserver: Clear upper ZMM registers in the right location.
x86: Remove X86_XSTATE_SIZE and related constants.
gdbserver: Simplify handling of ZMM registers.
gdb/aarch64-fbsd-nat.c | 3 +
gdb/aarch64-linux-nat.c | 3 +
gdb/amd64-fbsd-nat.c | 43 +--
gdb/amd64-fbsd-tdep.c | 12 +-
gdb/amd64-linux-nat.c | 6 +-
gdb/amd64-linux-tdep.c | 11 +-
gdb/arm-fbsd-nat.c | 3 +
gdb/arm-linux-nat.c | 3 +
gdb/configure.nat | 8 +-
gdb/corelow.c | 21 ++
gdb/gdbarch-gen.h | 9 +
gdb/gdbarch.c | 32 +++
gdb/gdbarch.h | 1 +
gdb/gdbarch_components.py | 11 +
gdb/i386-fbsd-nat.c | 42 +--
gdb/i386-fbsd-tdep.c | 72 ++---
gdb/i386-fbsd-tdep.h | 10 +-
gdb/i386-linux-nat.c | 8 +-
gdb/i386-linux-tdep.c | 67 ++---
gdb/i386-linux-tdep.h | 21 +-
gdb/i386-tdep.c | 19 +-
gdb/i386-tdep.h | 4 +
gdb/i387-tdep.c | 522 +++++++++++++++++++++++--------------
gdb/i387-tdep.h | 9 +
gdb/mips-linux-nat.c | 3 +
gdb/nat/x86-cpuid.h | 32 +++
gdb/nat/x86-xstate.c | 67 +++++
gdb/nat/x86-xstate.h | 35 +++
gdb/ppc-linux-nat.c | 3 +
gdb/riscv-linux-nat.c | 3 +
gdb/s390-linux-nat.c | 3 +
gdb/target-debug.h | 20 ++
gdb/target-delegates.c | 27 ++
gdb/target.c | 6 +
gdb/target.h | 7 +
gdb/x86-fbsd-nat.c | 21 ++
gdb/x86-fbsd-nat.h | 20 ++
gdb/x86-linux-nat.c | 6 +
gdb/x86-linux-nat.h | 7 +
gdbserver/configure.srv | 12 +-
gdbserver/i387-fp.cc | 268 +++++++++----------
gdbserver/i387-fp.h | 4 +-
gdbserver/linux-x86-low.cc | 10 +-
gdbsupport/x86-xstate.h | 70 +++--
44 files changed, 1049 insertions(+), 515 deletions(-)
create mode 100644 gdb/nat/x86-xstate.c
create mode 100644 gdb/nat/x86-xstate.h
--
2.40.0
next reply other threads:[~2023-04-27 21:01 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-27 21:00 John Baldwin [this message]
2023-04-27 21:00 ` [PATCH v5 01/19] x86: Add an x86_xsave_layout structure to handle " John Baldwin
2023-04-27 21:00 ` [PATCH v5 02/19] gdb: Store an x86_xsave_layout in i386_gdbarch_tdep John Baldwin
2023-05-03 16:22 ` Simon Marchi
2023-05-08 16:51 ` John Baldwin
2023-04-27 21:00 ` [PATCH v5 03/19] core: Support fetching x86 XSAVE layout from architectures John Baldwin
2023-04-27 21:00 ` [PATCH v5 04/19] nat/x86-cpuid.h: Add x86_cpuid_count wrapper around __get_cpuid_count John Baldwin
2023-04-27 21:00 ` [PATCH v5 05/19] x86 nat: Add helper functions to save the XSAVE layout for the host John Baldwin
2023-04-27 21:01 ` [PATCH v5 06/19] x86-fbsd-nat: Add missing public label John Baldwin
2023-04-27 21:01 ` [PATCH v5 07/19] *-fbsd-nat: Handle null inferior in read_description John Baldwin
2023-04-27 21:01 ` [PATCH v5 08/19] *-linux-nat: " John Baldwin
2023-05-03 16:38 ` Simon Marchi
2023-05-08 17:24 ` John Baldwin
2023-04-27 21:01 ` [PATCH v5 09/19] gdb: Update x86 FreeBSD architectures to support XSAVE layouts John Baldwin
2023-05-03 17:14 ` Simon Marchi
2023-05-03 17:20 ` Simon Marchi
2023-05-03 23:45 ` John Baldwin
2023-05-04 17:20 ` Simon Marchi
2023-05-08 17:33 ` John Baldwin
2023-04-27 21:01 ` [PATCH v5 10/19] gdb: Support XSAVE layouts for the current host in the FreeBSD x86 targets John Baldwin
2023-04-27 21:01 ` [PATCH v5 11/19] gdb: Update x86 Linux architectures to support XSAVE layouts John Baldwin
2023-04-27 21:01 ` [PATCH v5 12/19] gdb: Support XSAVE layouts for the current host in the Linux x86 targets John Baldwin
2023-04-27 21:01 ` [PATCH v5 13/19] gdb: Use x86_xstate_layout to parse the XSAVE extended state area John Baldwin
2023-04-27 21:01 ` [PATCH v5 14/19] gdbserver: Add a function to set the XSAVE mask and size John Baldwin
2023-04-27 21:01 ` [PATCH v5 15/19] gdbserver: Refactor the legacy region within the xsave struct John Baldwin
2023-04-27 21:01 ` [PATCH v5 16/19] gdbserver: Clear upper ZMM registers in the right location John Baldwin
2023-05-03 17:49 ` Simon Marchi
2023-05-03 23:47 ` John Baldwin
2023-04-27 21:01 ` [PATCH v5 17/19] gdbserver: Use x86_xstate_layout to parse the XSAVE extended state area John Baldwin
2023-04-27 21:01 ` [PATCH v5 18/19] x86: Remove X86_XSTATE_SIZE and related constants John Baldwin
2023-04-27 21:01 ` [PATCH v5 19/19] gdbserver: Simplify handling of ZMM registers John Baldwin
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=20230427210113.45380-1-jhb@FreeBSD.org \
--to=jhb@freebsd.org \
--cc=gdb-patches@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: link
Be 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).