From ee67fd7f3f6ca78eede2862e309c0bcf266bbd7e Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Thu, 25 Oct 2018 12:03:31 +0100 Subject: [PATCH] gdb/riscv: Use correct regnum in riscv_linux_nat_target::fetch_registers In riscv_linux_nat_target::fetch_registers, if we are asked to supply all registers (regnum parameter is -1), then we currently end up calling regcache::raw_supply_zeroed with the regnum -1, which is invalid. Instead we should be passing the regnum of the specific register we wish to supply zeroed, in this case RISCV_CSR_MISA_REGNUM. I removed the extra { ... } block in line with the coding standard while editing this area. gdb/ChangeLog: * riscv-linux-nat.c (riscv_linux_nat_target::fetch_registers): Pass correct regnum to raw_supply_zeroed. --- gdb/ChangeLog | 5 +++++ gdb/riscv-linux-nat.c | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ba3bf66db87..14de366cfcd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-10-25 Andrew Burgess + + * riscv-linux-nat.c (riscv_linux_nat_target::fetch_registers): + Pass correct regnum to raw_supply_zeroed. + 2018-10-23 Hafiz Abid Qadeer * regcache.c (cooked_read_test): Add CSKY to the list of diff --git a/gdb/riscv-linux-nat.c b/gdb/riscv-linux-nat.c index 7dbfe651f2c..c09121d052b 100644 --- a/gdb/riscv-linux-nat.c +++ b/gdb/riscv-linux-nat.c @@ -201,10 +201,8 @@ riscv_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum) if ((regnum == RISCV_CSR_MISA_REGNUM) || (regnum == -1)) - { - /* TODO: Need to add a ptrace call for this. */ - regcache->raw_supply_zeroed (regnum); - } + /* TODO: Need to add a ptrace call for this. */ + regcache->raw_supply_zeroed (RISCV_CSR_MISA_REGNUM); /* Access to other CSRs has potential security issues, don't support them for now. */