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]

FYI: fix 'info reg' output


I'm checking this in.

This fixes PR 12659.  The bug is wrong output when multiple names are
given to "info register":

    (gdb) info reg sp fp
    sp fp: 0x7fffffffe4d0
    fp: 0x7fffffffe4d0

Note the name of the first register.

The fix is just tweaking a printf a bit.

New test case included.

Built and regtested on x86-64 Fedora 16.

Tom

2012-02-15  Tom Tromey  <tromey@redhat.com>

	PR gdb/12659:
	* infcmd.c (registers_info): Print just the current register's
	name.

2012-02-15  Tom Tromey  <tromey@redhat.com>

	* gdb.base/pc-fp.exp: Add "info register" tests.

diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index e9e3e32..7d929df 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -2170,7 +2170,7 @@ registers_info (char *addr_exp, int fpregs)
 		struct value_print_options opts;
 		struct value *val = value_of_user_reg (regnum, frame);
 
-		printf_filtered ("%s: ", start);
+		printf_filtered ("%.*s: ", (int) (end - start), start);
 		get_formatted_print_options (&opts, 'x');
 		val_print_scalar_formatted (check_typedef (value_type (val)),
 					    value_contents_for_printing (val),
diff --git a/gdb/testsuite/gdb.base/pc-fp.exp b/gdb/testsuite/gdb.base/pc-fp.exp
index 9d74eef..f650000 100644
--- a/gdb/testsuite/gdb.base/pc-fp.exp
+++ b/gdb/testsuite/gdb.base/pc-fp.exp
@@ -60,11 +60,10 @@ set valueof_fp [get_hexadecimal_valueof "\$fp" "0"]
 gdb_test "display/i \$pc" "1: x/i +\\\$pc( +|\r\n)=> ${valueof_pc}.*"
 gdb_test "display/w \$fp" "2: x/xw +\\\$fp +${valueof_fp}.*"
 
-# FIXME: cagney/2002-09-04: Should also check that ``info registers
-# $pc'' et.al.'' come back with the same value as the above displays
-# and a print --- assuming that is that people agree to such behavour.
-# Need to re-write default_print_registers_info() for it to work (and
-# such a rewrite is on the reggroups branch).
+gdb_test "info register \$pc" "${valueof_pc}.*"
+gdb_test "info register \$fp" "${valueof_fp}.*"
 
-# gdb_test "info registers \$pc" "${valueof_pc}"
-# gdb_test "info registers \$fp" "${valueof_fp}"
+# Regression test for
+# http://sourceware.org/bugzilla/show_bug.cgi?id=12659
+gdb_test "info register pc fp" \
+    "pc: ${valueof_pc}\[\r\n\]+fp: ${valueof_fp}\[\r\n\]+"


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