From bcecc11da243fe5c333f9d2d914663d09f4b868d Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 6 Nov 2018 09:47:21 -0800 Subject: [PATCH] Note that PT_GETREGS supplies SSTATUS for FreeBSD/riscv. This permits reading the value of the SSTATUS CSR returned by ptrace() for live FreeBSD/riscv processes. * riscv-fbsd-nat.c (getregs_supplies): Return true for RISCV_CSR_SSTATUS_REGNUM. --- gdb/ChangeLog | 5 +++++ gdb/riscv-fbsd-nat.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4755ba9154..68ecef7728 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-11-06 John Baldwin + + * riscv-fbsd-nat.c (getregs_supplies): Return true for + RISCV_CSR_SSTATUS_REGNUM. + 2018-11-04 Philippe Waroquiers * source.c (open_source_file): Fix leak by transferring the diff --git a/gdb/riscv-fbsd-nat.c b/gdb/riscv-fbsd-nat.c index ad4ea1e0ad..e66f491284 100644 --- a/gdb/riscv-fbsd-nat.c +++ b/gdb/riscv-fbsd-nat.c @@ -42,7 +42,8 @@ static riscv_fbsd_nat_target the_riscv_fbsd_nat_target; static bool getregs_supplies (struct gdbarch *gdbarch, int regnum) { - return (regnum >= RISCV_RA_REGNUM && regnum <= RISCV_PC_REGNUM); + return ((regnum >= RISCV_RA_REGNUM && regnum <= RISCV_PC_REGNUM) + || regnum == RISCV_CSR_SSTATUS_REGNUM); } /* Determine if PT_GETFPREGS fetches REGNUM. */ -- 2.34.1