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_hppaobsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $
|
|
--- gdb/hppaobsd-nat.c.orig Wed Feb 10 04:19:39 2016
|
|
+++ gdb/hppaobsd-nat.c Sat May 14 22:54:35 2016
|
|
@@ -193,7 +193,7 @@ hppaobsd_fetch_registers (struct target_ops *ops,
|
|
{
|
|
struct reg regs;
|
|
|
|
- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
|
|
perror_with_name (_("Couldn't get registers"));
|
|
|
|
@@ -204,7 +204,7 @@ hppaobsd_fetch_registers (struct target_ops *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"));
|
|
|
|
@@ -223,13 +223,13 @@ hppaobsd_store_registers (struct target_ops *ops,
|
|
{
|
|
struct reg regs;
|
|
|
|
- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
|
|
perror_with_name (_("Couldn't get registers"));
|
|
|
|
hppaobsd_collect_gregset (regcache, ®s, regnum);
|
|
|
|
- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid),
|
|
+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid),
|
|
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
|
|
perror_with_name (_("Couldn't write registers"));
|
|
}
|
|
@@ -238,13 +238,13 @@ hppaobsd_store_registers (struct target_ops *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"));
|
|
|
|
hppaobsd_collect_fpregset (regcache, &fpregs, regnum);
|
|
|
|
- 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"));
|
|
}
|