public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Burgess <aburgess@redhat.com>
To: "Willgerodt, Felix" <felix.willgerodt@intel.com>,
	"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Cc: John Baldwin <jhb@FreeBSD.org>
Subject: RE: [PATCHv5 11/11] gdb/gdbserver: share x86/linux tdesc caching
Date: Tue, 07 May 2024 15:50:36 +0100	[thread overview]
Message-ID: <87pltxu14z.fsf@redhat.com> (raw)
In-Reply-To: <MN2PR11MB4566AA01CC6D66EC59B407228E1B2@MN2PR11MB4566.namprd11.prod.outlook.com>

"Willgerodt, Felix" <felix.willgerodt@intel.com> writes:

>> -----Original Message-----
>> From: Andrew Burgess <aburgess@redhat.com>
>> Sent: Freitag, 26. April 2024 17:02
>> To: gdb-patches@sourceware.org
>> Cc: Andrew Burgess <aburgess@redhat.com>; Willgerodt, Felix
>> <felix.willgerodt@intel.com>; John Baldwin <jhb@FreeBSD.org>
>> Subject: [PATCHv5 11/11] gdb/gdbserver: share x86/linux tdesc caching
>> 
>> This commit builds on the previous series of commits to share the
>> target description caching code between GDB and gdbserver for
>> x86/Linux targets.
>> 
>> The objective of this commit is to move the four functions (2 each of)
>> i386_linux_read_description and amd64_linux_read_description into the
>> gdb/arch/ directory and combine them so we have just a single copy of
>> each.  Then GDB, gdbserver, and the in-process-agent (IPA) will link
>> against these shared functions.
>> 
>> It is worth reading the description of the previous commit(s) to see
>> why this merging is not as simple as it seems, but in summary,
>> gdbserver used to generate a different set of possible target
>> descriptions than GDB.  The previous commit(s) fixed this, so now it
>> should be simpler to share the functions.
>> 
>> One curiosity with this patch is the function
>> x86_linux_post_init_tdesc.  On the gdbserver side the two functions
>> amd64_linux_read_description and i386_linux_read_description have some
>> functionality that is not present on the GDB side, that is some
>> additional configuration that is performed as each target description
>> is created to setup the expedited registers.
>> 
>> To support this I've added the function x86_linux_post_init_tdesc.
>> This function is called from the two *_linux_read_description
>> functions, but is implemented separately for GDB and gdbserver.
>> 
>> An alternative approach that avoids adding x86_linux_post_init_tdesc
>> would be to have x86_linux_tdesc_for_tid return a non-const target
>> description, in x86_target::low_arch_setup we could then inspect the
>> target description to figure out if it is 64-bit or not, and modify
>> the target description as needed.  In the end I figured that adding
>> the x86_linux_post_init_tdesc function was good enough, so went with
>> that solution.
>> 
>> The contents of gdbserver/linux-x86-low.cc have moved to
>> gdb/arch/x86-linux-tdesc-features.c, and gdbserver/linux-x86-tdesc.h
>> has moved to gdb/arch/x86-linux-tdesc-features.h, this change leads to
>> some updates in the #includes in the gdbserver/ directory.
>> 
>> For testing I've done the following:
>> 
>>   - Built on x86-64 GNU/Linux for all targets, and just for the native
>>     target,
>> 
>>   - Build on i386 GNU/Linux for all targets, and just for the native
>>     target,
>> 
>>   - Build on a 64-bit, non-x86 GNU/Linux for all targets, just for the
>>     native target, and for targets x86_64-*-linux and i386-*-linux.
>> 
>> This did flush out a bunch of build issues where I'd failed to add a
>> required file in a configure.* file, but I think everything should now
>> be good.
>> ---
>>  gdb/Makefile.in                               |   5 +
>>  gdb/amd64-linux-tdep.c                        |  31 --
>>  gdb/arch/amd64-linux-tdesc.c                  |  61 ++++
>>  gdb/arch/i386-linux-tdesc.c                   |  51 +++
>>  gdb/arch/x86-linux-tdesc-features.c           | 247 +++++++++++++++
>>  .../arch/x86-linux-tdesc-features.h           |  50 +--
>>  gdb/arch/x86-linux-tdesc.h                    |  37 +++
>>  gdb/configure.nat                             |   6 +-
>>  gdb/configure.tgt                             |  11 +-
>>  gdb/i386-linux-tdep.c                         |  26 +-
>>  gdbserver/configure.srv                       |   9 +
>>  gdbserver/linux-amd64-ipa.cc                  |   2 +-
>>  gdbserver/linux-i386-ipa.cc                   |   2 +-
>>  gdbserver/linux-x86-low.cc                    |   2 +-
>>  gdbserver/linux-x86-tdesc.cc                  | 292 +-----------------
>>  15 files changed, 469 insertions(+), 363 deletions(-)
>>  create mode 100644 gdb/arch/amd64-linux-tdesc.c
>>  create mode 100644 gdb/arch/i386-linux-tdesc.c
>>  create mode 100644 gdb/arch/x86-linux-tdesc-features.c
>>  rename gdbserver/linux-x86-tdesc.h => gdb/arch/x86-linux-tdesc-features.h
>> (52%)
>>  create mode 100644 gdb/arch/x86-linux-tdesc.h
>> 
>> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
>> index a24b2232daa..1e49ae396f4 100644
>> --- a/gdb/Makefile.in
>> +++ b/gdb/Makefile.in
>> @@ -748,6 +748,7 @@ ALL_64_TARGET_OBS = \
>>  	arch/aarch64-insn.o \
>>  	arch/aarch64-mte-linux.o \
>>  	arch/aarch64-scalable-linux.o \
>> +	arch/amd64-linux-tdesc.o \
>>  	arch/amd64.o \
>>  	arch/riscv.o \
>>  	bpf-tdep.o \
>> @@ -788,9 +789,11 @@ ALL_TARGET_OBS = \
>>  	arch/arm.o \
>>  	arch/arm-get-next-pcs.o \
>>  	arch/arm-linux.o \
>> +	arch/i386-linux-tdesc.o \
>>  	arch/i386.o \
>>  	arch/loongarch.o \
>>  	arch/ppc-linux-common.o \
>> +	arch/x86-linux-tdesc-features.o \
>>  	arm-bsd-tdep.o \
>>  	arm-fbsd-tdep.o \
>>  	arm-linux-tdep.o \
>> @@ -1558,6 +1561,8 @@ HFILES_NO_SRCDIR = \
>>  	arch/ppc-linux-common.h \
>>  	arch/ppc-linux-tdesc.h \
>>  	arch/riscv.h \
>> +	arch/x86-linux-tdesc-features.h \
>> +	arch/x86-linux-tdesc.h \
>>  	cli/cli-cmds.h \
>>  	cli/cli-decode.h \
>>  	cli/cli-script.h \
>> diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
>> index bcb9868e79e..c707745cd9a 100644
>> --- a/gdb/amd64-linux-tdep.c
>> +++ b/gdb/amd64-linux-tdep.c
>> @@ -1577,37 +1577,6 @@ amd64_linux_record_signal (struct gdbarch *gdbarch,
>>    return 0;
>>  }
>> 
>> -const target_desc *
>> -amd64_linux_read_description (uint64_t xcr0_features_bit, bool is_x32)
>> -{
>> -  static target_desc *amd64_linux_tdescs \
>> -    [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
>> -  static target_desc *x32_linux_tdescs \
>> -    [2/*AVX*/][2/*AVX512*/][2/*PKRU*/] = {};
>> -
>> -  target_desc **tdesc;
>> -
>> -  if (is_x32)
>> -    {
>> -      tdesc = &x32_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0 ]
>> -	[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0]
>> -	[(xcr0_features_bit & X86_XSTATE_PKRU) ? 1 : 0];
>> -    }
>> -  else
>> -    {
>> -      tdesc = &amd64_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0]
>> -	[(xcr0_features_bit & X86_XSTATE_MPX) ? 1 : 0]
>> -	[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0]
>> -	[(xcr0_features_bit & X86_XSTATE_PKRU) ? 1 : 0];
>> -    }
>> -
>> -  if (*tdesc == NULL)
>> -    *tdesc = amd64_create_target_description (xcr0_features_bit, is_x32,
>> -					      true, true);
>> -
>> -  return *tdesc;
>> -}
>> -
>>  /* Get Linux/x86 target description from core dump.  */
>> 
>>  static const struct target_desc *
>> diff --git a/gdb/arch/amd64-linux-tdesc.c b/gdb/arch/amd64-linux-tdesc.c
>> new file mode 100644
>> index 00000000000..63b5ddfcece
>> --- /dev/null
>> +++ b/gdb/arch/amd64-linux-tdesc.c
>> @@ -0,0 +1,61 @@
>> +/* Target description related code for GNU/Linux x86-64.
>> +
>> +   Copyright (C) 2024 Free Software Foundation, Inc.
>> +
>> +   This file is part of GDB.
>> +
>> +   This program is free software; you can redistribute it and/or modify
>> +   it under the terms of the GNU General Public License as published by
>> +   the Free Software Foundation; either version 3 of the License, or
>> +   (at your option) any later version.
>> +
>> +   This program is distributed in the hope that it will be useful,
>> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> +   GNU General Public License for more details.
>> +
>> +   You should have received a copy of the GNU General Public License
>> +   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
>> +
>> +#include "arch/x86-linux-tdesc.h"
>> +#include "arch/amd64-linux-tdesc.h"
>> +#include "arch/amd64.h"
>> +#include "arch/x86-linux-tdesc-features.h"
>> +
>> +
>> +/* See arch/amd64-linux-tdesc.h.  */
>> +
>> +const struct target_desc *
>> +amd64_linux_read_description (uint64_t xcr0, bool is_x32)
>> +{
>> +  /* The type used for the amd64 and x32 target description caches.  */
>> +  using tdesc_cache_type = std::unordered_map<uint64_t, const
>> target_desc_up>;
>> +
>> +  /* Caches for the previously seen amd64 and x32 target descriptions,
>> +     indexed by the xcr0 value that created the target description.  These
>> +     need to be static within this function to ensure they are initialised
>> +     before first use.  */
>> +  static tdesc_cache_type amd64_tdesc_cache, x32_tdesc_cache;
>> +
>
> Sorry for this long comment, it isn't strictly related to your series, as you don't
> change the status quo. But since you are changing the cache, I find it relevant.
>
> I wonder if caching of target descriptions based on xcr0 alone is really
> good enough. It isn't always the only thing used for determining registers.
> I realize you don't change that fact, though with the map we would need to
> hash xcr0 with the other factors for the key. Arguably that could still be
> viewed as better than the current way.
>
> Right now there is already the segments and "orig_rax" register for amd64.
> Though I don't know if IPA really supports them and I am not super familiar with
> their details. It seems like we just add them unconditionally or based on whether
> or not we are on Linux. I am not really sure that means we don't care about them
> for our cache (especially the Linux part), but it seems that is the current state.
>
> But in the near future there will be the shadow stack pointer register for CET,
> which we can only read with a separate ptrace call.
> See this patch, which we want to post soon:
> https://github.com/intel/gdb/commit/afff428f38a1f03ac0127797deda524d81ec156e
>
> I must admit I never really fully understood why this caching is done.
> Is it for a single GDB session connecting to different gdbserver sessions one
> after the other? Or for inferior re-starts?
> Or for runtime target description updates similar to SVE on aarch64?
> (Which we will also add at some point for AMX on x86.)
> Or a mix of all?

You are 100% correct.  And I agree with everything you've said.

I also spotted this issue and had a choice to make.

I could:

  (a) fix the caching mechanism first, which would require duplicating
  the effort in GDB and gdbserver, then

  (b) merge the GDB and gdbserver code.

Or I could:

  (a) merge the GDB and gdbserver code, then

  (b) fix the caching mechanism.

As you can see, I opted to merge the code first, but this was already 11
patches.  Which is going to be at least 12 in v6.

Realistically, if I tried to "fix" caching at the same time then either
each patch is going to get much bigger (and break the one change per
patch rule) or the series is going to start getting really long.

I've stopped where I have to try and keep the number of patches down; I
don't want to overload reviewers.  Plus, if I write too much on top of
earlier patches and get asked to rewrite things the rewrites become more
work.

My plan after this series is merged was to unify all of the x86 tdesc
caching, not just for Linux, but for all x86 targets (e.g. FreeBSD).  I
was going to adopt an approach similar to the approach I used for
risc-v, which I think works pretty well, that is have a single struct
that can holds all the features that impact tdesc creation, give that
struct a hash() function, and then use this as the key for caching
created tdesc.

I'll take a look and see if I can do something part way towards this
solution as part of this patch which would address your immediate
concerns.

Thanks,
Andrew


  reply	other threads:[~2024-05-07 14:50 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-01 15:28 [PATCH 0/7] x86/Linux Target Description Changes Andrew Burgess
2024-02-01 15:28 ` [PATCH 1/7] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-02-01 15:28 ` [PATCH 2/7] gdb/x86: move reading of cs and ds state into gdb/nat directory Andrew Burgess
2024-02-01 15:28 ` [PATCH 3/7] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-02-01 15:28 ` [PATCH 4/7] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-02-01 15:28 ` [PATCH 5/7] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-02-01 15:28 ` [PATCH 6/7] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-02-01 15:28 ` [PATCH 7/7] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-03-05 17:00 ` [PATCHv2 0/7] x86/Linux Target Description Changes Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 1/7] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 2/7] gdb/x86: move reading of cs and ds state into gdb/nat directory Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 3/7] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 4/7] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 5/7] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-03-05 17:00   ` [PATCHv2 6/7] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-03-19 16:01     ` John Baldwin
2024-03-19 18:34       ` Andrew Burgess
2024-03-21 17:28         ` John Baldwin
2024-03-26 10:01           ` Luis Machado
2024-03-26 15:31             ` Tom Tromey
2024-03-05 17:00   ` [PATCHv2 7/7] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-03-19 16:05   ` [PATCHv2 0/7] x86/Linux Target Description Changes John Baldwin
2024-03-23 16:35   ` [PATCHv3 0/8] " Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 1/8] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 2/8] gdb/x86: move reading of cs and ds state into gdb/nat directory Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 3/8] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 4/8] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 5/8] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 6/8] gdb/arch: assert that X86_XSTATE_MPX is not set for x32 Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 7/8] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-03-23 16:35     ` [PATCHv3 8/8] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-03-26 12:17       ` Andrew Burgess
2024-03-25 17:20     ` [PATCHv3 0/8] x86/Linux Target Description Changes Andrew Burgess
2024-03-25 18:26       ` Simon Marchi
2024-03-26 12:15         ` Andrew Burgess
2024-03-26 13:51           ` H.J. Lu
2024-03-26 14:16             ` H.J. Lu
2024-03-26 16:36       ` Andrew Burgess
2024-03-26 19:03         ` Andrew Burgess
2024-04-05 12:33     ` [PATCHv4 00/10] " Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 01/10] gdbserver/ipa/x86: remove unneeded declarations Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 02/10] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 03/10] gdb/x86: move reading of cs and ds state into gdb/nat directory Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 04/10] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 05/10] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 06/10] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 07/10] gdb/arch: assert that X86_XSTATE_MPX is not set for x32 Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 08/10] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 09/10] gdb: move xcr0 == 0 check into i386_linux_core_read_description Andrew Burgess
2024-04-05 12:33       ` [PATCHv4 10/10] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-04-09 18:37       ` [PATCHv4 00/10] x86/Linux Target Description Changes John Baldwin
2024-04-25 13:35       ` Willgerodt, Felix
2024-04-25 16:06         ` Andrew Burgess
2024-04-26 15:01       ` [PATCHv5 00/11] " Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 01/11] gdbserver/ipa/x86: remove unneeded declarations Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-05-07 15:05             ` Andrew Burgess
2024-05-08  7:49               ` Willgerodt, Felix
2024-04-26 15:01         ` [PATCHv5 02/11] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-05-07 15:28             ` Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 03/11] gdb/x86: move reading of cs and ds state into gdb/nat directory Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-04-26 15:01         ` [PATCHv5 04/11] gdb/x86: move have_ptrace_getfpxregs global " Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-04-26 15:01         ` [PATCHv5 05/11] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-05-07 11:55             ` Luis Machado
2024-05-07 15:43               ` Andrew Burgess
2024-05-07 15:56                 ` Luis Machado
2024-05-08  7:49                 ` Willgerodt, Felix
2024-05-08 13:18                   ` Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 06/11] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-04-26 15:01         ` [PATCHv5 07/11] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-05-07 11:40             ` Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 08/11] gdb/arch: assert that X86_XSTATE_MPX is not set for x32 Andrew Burgess
2024-04-29 14:34           ` Willgerodt, Felix
2024-05-07 16:08             ` Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 09/11] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-04-29 14:35           ` Willgerodt, Felix
2024-05-07 14:24             ` Andrew Burgess
2024-05-08  7:47               ` Willgerodt, Felix
2024-05-08 13:28                 ` Andrew Burgess
2024-04-26 15:01         ` [PATCHv5 10/11] gdb: move xcr0 == 0 check into i386_linux_core_read_description Andrew Burgess
2024-04-29 14:35           ` Willgerodt, Felix
2024-04-26 15:01         ` [PATCHv5 11/11] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-04-29 14:35           ` Willgerodt, Felix
2024-05-07 14:50             ` Andrew Burgess [this message]
2024-05-08  7:49               ` Willgerodt, Felix
2024-05-08 16:09                 ` Andrew Burgess
2024-05-08 16:46         ` [PATCHv6 0/9] x86/Linux Target Description Changes Andrew Burgess
2024-05-08 16:46           ` [PATCHv6 1/9] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-05-08 16:46           ` [PATCHv6 2/9] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-05-08 16:46           ` [PATCHv6 3/9] gdb/x86: move have_ptrace_getfpxregs global into gdb/nat directory Andrew Burgess
2024-05-08 22:52             ` John Baldwin
2024-05-08 16:46           ` [PATCHv6 4/9] gdb/x86: move have_ptrace_getregset " Andrew Burgess
2024-05-08 22:53             ` John Baldwin
2024-05-08 16:46           ` [PATCHv6 5/9] gdb/x86: move reading of cs and ds state " Andrew Burgess
2024-05-08 16:46           ` [PATCHv6 6/9] gdb: move xcr0 == 0 check into i386_linux_core_read_description Andrew Burgess
2024-05-08 22:54             ` John Baldwin
2024-05-08 16:46           ` [PATCHv6 7/9] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-05-08 22:58             ` John Baldwin
2024-05-08 16:46           ` [PATCHv6 8/9] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-05-08 16:46           ` [PATCHv6 9/9] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-05-11 10:08           ` [PATCHv7 0/9] x86/Linux Target Description Changes Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 1/9] gdb/gdbserver: share I386_LINUX_XSAVE_XCR0_OFFSET definition Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 2/9] gdbserver/x86: move no-xml code earlier in x86_linux_read_description Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 3/9] gdb/x86: move have_ptrace_getfpxregs global into gdb/nat directory Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 4/9] gdb: move have_ptrace_getregset declaration " Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 5/9] gdb/x86: move reading of cs and ds state " Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 6/9] gdb: move xcr0 == 0 check into i386_linux_core_read_description Andrew Burgess
2024-05-11 10:08             ` [PATCHv7 7/9] gdb/gdbserver: share some code relating to target description creation Andrew Burgess
2024-05-17 11:59               ` Willgerodt, Felix
2024-05-11 10:08             ` [PATCHv7 8/9] gdbserver: update target description creation for x86/linux Andrew Burgess
2024-05-17 12:00               ` Willgerodt, Felix
2024-05-11 10:08             ` [PATCHv7 9/9] gdb/gdbserver: share x86/linux tdesc caching Andrew Burgess
2024-05-17 12:00               ` Willgerodt, Felix

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=87pltxu14z.fsf@redhat.com \
    --to=aburgess@redhat.com \
    --cc=felix.willgerodt@intel.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jhb@FreeBSD.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).