This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2] Don't throw an error in 'info registers' for unavailable MIPS registers.


'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 to "<unavl>" 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(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9062067bcf..26ea6fb8c7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-16  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-tdep.c (print_gp_register_row): Don't error for unavailable
+	registers.
+
 2017-06-16  Alan Hayward  <alan.hayward@arm.com>
 	    Pedro Alves  <palves@redhat.com>
 	    Yao Qi  <yao.qi@linaro.org>
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 3ff2dab491..adc843a5be 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -6542,8 +6542,14 @@ print_gp_register_row (struct ui_file *file, struct frame_info *frame,
       value = get_frame_register_value (frame, regnum);
       if (value_optimized_out (value)
 	|| !value_entirely_available (value))
-	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 ? "<unavl>"
+			    : "<unavailable>");
+	  col++;
+	  continue;
+	}
       raw_buffer = value_contents_all (value);
       /* pad small registers */
       for (byte = 0;
-- 
2.11.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]