This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] mips-tdep: info registers
Joel Brobecker wrote:
The problem is, this doesn't do what you want it to do. It looks up
GDB internal register number 1. That just happens, at the moment,
to match up with the raw register backing $at. But it might change
in the future. It's not "the register named $1", which is what a
MIPS user should expect.
I agree, now, that we shouldn't have this feature. I can have a look
at removing it...
Joel, the attached removes numeric value syntax, but allows
it for mips; mips will explicitly map regno to raw regno
(which is currently 1-1).
I will let you take it from here.
Thanks,
Aleksandar Ristovski
QNX Software Systems
Index: gdb/infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.231
diff -r1.231 infcmd.c
1951,1965d1950
< /* A register number? (how portable is this one?). */
< {
< char *endptr;
< int regnum = strtol (start, &endptr, 0);
< if (endptr == end
< && regnum >= 0
< && regnum < gdbarch_num_regs (gdbarch)
< + gdbarch_num_pseudo_regs (gdbarch))
< {
< gdbarch_print_registers_info (gdbarch, gdb_stdout,
< frame, regnum, fpregs);
< continue;
< }
< }
<
Index: gdb/mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.490
diff -r1.490 mips-tdep.c
442a443,449
> static char *mips_gpr_numeric_names[] = {
> "0", "1", "2", "3", "4", "5", "6", "7",
> "8", "9", "10", "11", "12", "13", "14", "15",
> "16", "17", "18", "19", "20", "21", "22", "23",
> "24", "25", "26", "27", "28", "29", "30", "31"
> };
>
449c456,461
< return "";
---
> {
> if (regno >= 0)
> return mips_gpr_numeric_names [regno];
> else
> return "";
> }
4604c4616,4618
< gdb_assert (regnum >= gdbarch_num_regs (gdbarch));
---
> if (regnum < gdbarch_num_regs (gdbarch)
> && regnum >= 0)
> regnum += gdbarch_num_regs (gdbarch); /* Print pseudo register. */