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.
This commit is contained in:
Andrew Burgess 2018-10-25 12:03:31 +01:00
parent 0a640d7196
commit ee67fd7f3f
2 changed files with 7 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2018-10-25 Andrew Burgess <andrew.burgess@embecosm.com>
* riscv-linux-nat.c (riscv_linux_nat_target::fetch_registers):
Pass correct regnum to raw_supply_zeroed.
2018-10-23 Hafiz Abid Qadeer <abidh@codesourcery.com> 2018-10-23 Hafiz Abid Qadeer <abidh@codesourcery.com>
* regcache.c (cooked_read_test): Add CSKY to the list of * regcache.c (cooked_read_test): Add CSKY to the list of

View File

@ -201,10 +201,8 @@ riscv_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum)
if ((regnum == RISCV_CSR_MISA_REGNUM) if ((regnum == RISCV_CSR_MISA_REGNUM)
|| (regnum == -1)) || (regnum == -1))
{ /* TODO: Need to add a ptrace call for this. */
/* TODO: Need to add a ptrace call for this. */ regcache->raw_supply_zeroed (RISCV_CSR_MISA_REGNUM);
regcache->raw_supply_zeroed (regnum);
}
/* Access to other CSRs has potential security issues, don't support them for /* Access to other CSRs has potential security issues, don't support them for
now. */ now. */