diff options
Diffstat (limited to 'gdb/ia64-linux-nat.c')
-rw-r--r-- | gdb/ia64-linux-nat.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c index e26dd150250..a532b983859 100644 --- a/gdb/ia64-linux-nat.c +++ b/gdb/ia64-linux-nat.c @@ -41,6 +41,8 @@ /* Prototypes for supply_gregset etc. */ #include "gregset.h" +#include "inf-ptrace.h" + /* These must match the order of the register names. Some sort of lookup table is needed because the offsets associated @@ -696,7 +698,8 @@ ia64_linux_fetch_register (struct regcache *regcache, int regnum) CORE_ADDR addr; size_t size; PTRACE_TYPE_RET *buf; - int pid, i; + pid_t pid; + int i; /* r0 cannot be fetched but is always zero. */ if (regnum == IA64_GR0_REGNUM) @@ -735,11 +738,7 @@ ia64_linux_fetch_register (struct regcache *regcache, int regnum) return; } - /* Cater for systems like GNU/Linux, that implement threads as - separate processes. */ - pid = ptid_get_lwp (inferior_ptid); - if (pid == 0) - pid = ptid_get_pid (inferior_ptid); + pid = get_ptrace_pid (regcache_get_ptid (regcache)); /* This isn't really an address, but ptrace thinks of it as one. */ addr = ia64_register_addr (gdbarch, regnum); @@ -788,16 +787,13 @@ ia64_linux_store_register (const struct regcache *regcache, int regnum) CORE_ADDR addr; size_t size; PTRACE_TYPE_RET *buf; - int pid, i; + pid_t pid; + int i; if (ia64_cannot_store_register (gdbarch, regnum)) return; - /* Cater for systems like GNU/Linux, that implement threads as - separate processes. */ - pid = ptid_get_lwp (inferior_ptid); - if (pid == 0) - pid = ptid_get_pid (inferior_ptid); + pid = get_ptrace_pid (regcache_get_ptid (regcache)); /* This isn't really an address, but ptrace thinks of it as one. */ addr = ia64_register_addr (gdbarch, regnum); |