This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
FYI: fix 'info reg' output
- From: Tom Tromey <tromey at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 15 Feb 2012 12:12:41 -0700
- Subject: 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\]+"