Re: [PATCH 2/5] fbsd-nat: Use regset supply/collect methods.

Simon Marchi via Gdb-patches
2022-11-22T20:20:24Z

On 7/7/22 20:58, John Baldwin wrote:
> fbsd-nat includes various helper routines for fetching and storing
> register sets via ptrace where the register set is described by a
> regset. These helper routines directly invoke the
> supply/collect_regset regcache methods which doesn't permit a regset
> to provide custom logic when fetching or storing a register set.
> Instead, just use the function pointers from the struct regset
> directly.
> ---
> gdb/fbsd-nat.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
> index 281b034b115..9d7383ac0ab 100644
> --- a/gdb/fbsd-nat.c
> +++ b/gdb/fbsd-nat.c
> @@ -1744,7 +1744,7 @@ fbsd_nat_target::fetch_register_set (struct regcache *regcache, int regnum,
> if (ptrace (fetch_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
> perror_with_name (_("Couldn't get registers"));
>
> - regcache->supply_regset (regset, regnum, regs, size);
> + regset->supply_regset (regset, regcache, regnum, regs, size);
> return true;
> }
> return false;
> @@ -1768,7 +1768,7 @@ fbsd_nat_target::store_register_set (struct regcache *regcache, int regnum,
> if (ptrace (fetch_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
> perror_with_name (_("Couldn't get registers"));
>
> - regcache->collect_regset (regset, regnum, regs, size);
> + regset->collect_regset (regset, regcache, regnum, regs, size);
>
> if (ptrace (store_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
> perror_with_name (_("Couldn't write registers"));
> @@ -1813,7 +1813,7 @@ fbsd_nat_target::fetch_regset (struct regcache *regcache, int regnum, int note,
> if (ptrace (PT_GETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
> perror_with_name (_("Couldn't get registers"));
>
> - regcache->supply_regset (regset, regnum, regs, size);
> + regset->supply_regset (regset, regcache, regnum, regs, size);
> return true;
> }
> return false;
> @@ -1838,7 +1838,7 @@ fbsd_nat_target::store_regset (struct regcache *regcache, int regnum, int note,
> if (ptrace (PT_GETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
> perror_with_name (_("Couldn't get registers"));
>
> - regcache->collect_regset (regset, regnum, regs, size);
> + regset->collect_regset (regset, regcache, regnum, regs, size);
>
> if (ptrace (PT_SETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
> perror_with_name (_("Couldn't write registers"));
> --
> 2.36.1
>

Approved-By: Simon Marchi <simon.marchi@efficios.com>

Simon