[PATCH 4/5] RISC-V: Add native linux support.
Andrew Burgess
andrew.burgess@embecosm.com
Thu Oct 25 11:09:00 GMT 2018
* Andreas Schwab <schwab@suse.de> [2018-10-25 12:49:09 +0200]:
> On Aug 08 2018, Jim Wilson <jimw@sifive.com> wrote:
>
> > + if ((regnum == RISCV_CSR_MISA_REGNUM)
> > + || (regnum == -1))
> > + {
> > + /* TODO: Need to add a ptrace call for this. */
> > + regcache->raw_supply_zeroed (regnum);
>
> ../../gdb/gdb/regcache.c:337: internal-error: void reg_buffer::assert_regnum(int) const: Assertion `regnum >= 0' failed.
Thanks for the report.
I pushed the patch below to fix this issue.
Thanks,
Andrew
---
[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/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. */
--
2.14.5
More information about the Gdb-patches
mailing list