[v2,4/4] Don't throw an error in 'info registers' for unavailable MIPS GP registers.
Commit Message
'info registers' for MIPS throws an error and when it first encounters
an unavailable register. This does not match other architectures
which annotate unavailable registers and continue to print out the
values of subsequent registers. Replace the error by displaying an
aligned "<unavailable>". This string is truncated when displaying a
32-bit register.
gdb/ChangeLog:
* mips-tdep.c (print_gp_register_row): Don't error for unavailable
registers.
---
gdb/ChangeLog | 5 +++++
gdb/mips-tdep.c | 10 ++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
@@ -1,5 +1,10 @@
2017-04-25 John Baldwin <jhb@FreeBSD.org>
+ * mips-tdep.c (print_gp_register_row): Don't error for unavailable
+ registers.
+
+2017-04-25 John Baldwin <jhb@FreeBSD.org>
+
* mips-tdep.c (print_gp_register_row): Replace printf_filtered
with fprintf_filtered.
@@ -6533,8 +6533,14 @@ print_gp_register_row (struct ui_file *file, struct frame_info *frame,
/* OK: get the data in raw format. */
if (!deprecated_frame_register_read (frame, regnum, raw_buffer))
- error (_("can't read register %d (%s)"),
- regnum, gdbarch_register_name (gdbarch, regnum));
+ {
+ fprintf_filtered (file, "%*s ",
+ (int) mips_abi_regsize (gdbarch) * 2,
+ mips_abi_regsize (gdbarch) == 4 ? "<absent>"
+ : "<unavailable>");
+ col++;
+ continue;
+ }
/* pad small registers */
for (byte = 0;
byte < (mips_abi_regsize (gdbarch)