Add support for NetBSD threads in sh-nbsd-nat.c

NetBSD ptrace(2) accepts thread id (LWP) as the 4th argument for threads.

gdb/ChangeLog:

	* sh-nbsd-nat.c (fetch_registers): New variable lwp and pass
	it to the ptrace call.
	* sh-nbsd-nat.c (store_registers): Likewise.
This commit is contained in:
Kamil Rytarowski 2020-03-17 16:31:49 +01:00
parent 9809762324
commit a225c9a869
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2020-03-17 Kamil Rytarowski <n54@gmx.com>
* sh-nbsd-nat.c (fetch_registers): New variable lwp and pass
it to the ptrace call.
* sh-nbsd-nat.c (store_registers): Likewise.
2020-03-17 Kamil Rytarowski <n54@gmx.com>
* sh-nbsd-nat.c (sh_nbsd_nat_target): Inherit from

View File

@ -53,13 +53,14 @@ void
sh_nbsd_nat_target::fetch_registers (struct regcache *regcache, int regno)
{
pid_t pid = regcache->ptid ().pid ();
int lwp = regcache->ptid ().lwp ();
if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno))
{
struct reg inferior_registers;
if (ptrace (PT_GETREGS, pid,
(PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1)
(PTRACE_TYPE_ARG3) &inferior_registers, lwp) == -1)
perror_with_name (_("Couldn't get registers"));
sh_corefile_supply_regset (&sh_corefile_gregset, regcache, regno,
@ -75,13 +76,14 @@ void
sh_nbsd_nat_target::store_registers (struct regcache *regcache, int regno)
{
pid_t pid = regcache->ptid ().pid ();
int lwp = regcache->ptid ().lwp ();
if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno))
{
struct reg inferior_registers;
if (ptrace (PT_GETREGS, pid,
(PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1)
(PTRACE_TYPE_ARG3) &inferior_registers, lwp) == -1)
perror_with_name (_("Couldn't get registers"));
sh_corefile_collect_regset (&sh_corefile_gregset, regcache, regno,
@ -89,7 +91,7 @@ sh_nbsd_nat_target::store_registers (struct regcache *regcache, int regno)
SHNBSD_SIZEOF_GREGS);
if (ptrace (PT_SETREGS, pid,
(PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1)
(PTRACE_TYPE_ARG3) &inferior_registers, lwp) == -1)
perror_with_name (_("Couldn't set registers"));
if (regno != -1)