aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2018-11-06 09:47:21 -0800
committerJohn Baldwin <jhb@FreeBSD.org>2018-11-06 09:47:21 -0800
commitbcecc11da243fe5c333f9d2d914663d09f4b868d (patch)
tree7584b582c5eb750d56b9517283d22ea6c3d6b6a9
parent8a6b075bc07f66678ed0176f895847df3ea7fcef (diff)
downloadgdb-bcecc11da243fe5c333f9d2d914663d09f4b868d.zip
gdb-bcecc11da243fe5c333f9d2d914663d09f4b868d.tar.gz
gdb-bcecc11da243fe5c333f9d2d914663d09f4b868d.tar.bz2
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.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/riscv-fbsd-nat.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4755ba9..68ecef7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-06 John Baldwin <jhb@FreeBSD.org>
+
+ * riscv-fbsd-nat.c (getregs_supplies): Return true for
+ RISCV_CSR_SSTATUS_REGNUM.
+
2018-11-04 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* 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 ad4ea1e..e66f491 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. */