Initially implemented by jhb@freebsd for i386 and amd64: replace ptid_get_pid by get_ptrace_pid when fetching / setting registers. The latter does the right thing with multiple threads. Issue reported by guenther@ plus a few users. ok pascal@ (maintainer)
54 lines
2.1 KiB
Plaintext
54 lines
2.1 KiB
Plaintext
$OpenBSD: patch-gdb_alphabsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $
|
|
--- gdb/alphabsd-nat.c.orig Wed Feb 10 04:19:39 2016
|
|
+++ gdb/alphabsd-nat.c Sat May 14 22:54:35 2016
|
|
@@ -91,7 +91,7 @@ alphabsd_fetch_inferior_registers (struct target_ops *
|
|
{
|
|
struct reg gregs;
|
|
|
|
- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &gregs, 0) == -1)
|
|
perror_with_name (_("Couldn't get registers"));
|
|
|
|
@@ -105,7 +105,7 @@ alphabsd_fetch_inferior_registers (struct target_ops *
|
|
{
|
|
struct fpreg fpregs;
|
|
|
|
- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
|
|
perror_with_name (_("Couldn't get floating point status"));
|
|
|
|
@@ -123,13 +123,13 @@ alphabsd_store_inferior_registers (struct target_ops *
|
|
if (regno == -1 || getregs_supplies (regno))
|
|
{
|
|
struct reg gregs;
|
|
- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &gregs, 0) == -1)
|
|
perror_with_name (_("Couldn't get registers"));
|
|
|
|
alphabsd_fill_reg (regcache, (char *) &gregs, regno);
|
|
|
|
- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &gregs, 0) == -1)
|
|
perror_with_name (_("Couldn't write registers"));
|
|
|
|
@@ -142,13 +142,13 @@ alphabsd_store_inferior_registers (struct target_ops *
|
|
{
|
|
struct fpreg fpregs;
|
|
|
|
- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
|
|
perror_with_name (_("Couldn't get floating point status"));
|
|
|
|
alphabsd_fill_fpreg (regcache, (char *) &fpregs, regno);
|
|
|
|
- if (ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
|
|
perror_with_name (_("Couldn't write floating point status"));
|
|
}
|