This is the mail archive of the gdb-cvs@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]

[binutils-gdb] Don't throw an error in 'info registers' for unavailable MIPS registers.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=325c9fd4aa054118b80c621262f10fc6ffe98e25

commit 325c9fd4aa054118b80c621262f10fc6ffe98e25
Author: John Baldwin <jhb@FreeBSD.org>
Date:   Mon Jun 19 14:30:24 2017 -0700

    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.

Diff:
---
 gdb/ChangeLog   |  5 +++++
 gdb/mips-tdep.c | 10 ++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7cf410..4e091d7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-tdep.c (print_gp_register_row): Don't error for unavailable
+	registers.
+
 2017-06-19  Pedro Alves  <palves@redhat.com>
 
 	* dwarf2read.c (write_psymtabs_to_index): Construct file_closer
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 3ff2dab..c1800e4 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;


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