This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: PATCH: PR corefiles/11511: gcore doesn't work with orig_rax on Linux/amd64
On 04/19/2010 10:21 AM, H.J. Lu wrote:
>
> I am CCing Peter, who is the Linux x86 kernel maintainer.
>
Also adding Roland McGrath.
> We have 2 general-purpose register maps in GDB. One is in nat.c:
>
> /* Mapping between the general-purpose registers in GNU/Linux x86-64
> `struct user' format and GDB's register cache layout. */
>
> static int amd64_linux_gregset64_reg_offset[] =
>
> It is used for reading/writing registers from/to kernel. One is in tdep.c:
>
> /* Mapping between the general-purpose registers in `struct user'
> format and GDB's register cache layout. */
>
> /* From <sys/reg.h>. */
> static int amd64_linux_gregset_reg_offset[] =
>
> It is use for reading/writing core dump.
>
> Both are mappings between `struct user' and GDB's register cache.
> It is very unlikely that the current x86 Linux kernel ABI for accessing
> `struct user' will change. If the kernel ABI does need to change for
> whatever reason, the new interface will be introduced.
>
> This applies to both i386 and x86-64 Linux kernel. I'd like to keep
> a single map between the general-purpose registers in `struct user'
> format and GDB's register cache for i386/x86-64 Linux. Will such
> a patch acceptable?
>
struct user will not change, at least not for i386/x86-64. New
additions will be done via regsets, i.e. PTRACE_GETREGSET. I can't
speak for the embedded architectures, obviously, but they should do
something similar.
-hpa