From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15384 invoked by alias); 18 Sep 2013 14:48:52 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 15367 invoked by uid 89); 18 Sep 2013 14:48:51 -0000 Received: from mms2.broadcom.com (HELO mms2.broadcom.com) (216.31.210.18) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 18 Sep 2013 14:48:51 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RDNS_NONE autolearn=no version=3.3.2 X-HELO: mms2.broadcom.com Received: from [10.9.208.53] by mms2.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Wed, 18 Sep 2013 07:42:16 -0700 X-Server-Uuid: 4500596E-606A-40F9-852D-14843D8201B2 Received: from IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) by IRVEXCHCAS06.corp.ad.broadcom.com (10.9.208.53) with Microsoft SMTP Server (TLS) id 14.1.438.0; Wed, 18 Sep 2013 07:48:41 -0700 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) with Microsoft SMTP Server id 14.1.438.0; Wed, 18 Sep 2013 07:48:41 -0700 Received: from [10.177.73.74] (unknown [10.177.73.74]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id D4E5A246A3; Wed, 18 Sep 2013 07:48:40 -0700 (PDT) Message-ID: <5239BD47.2020101@broadcom.com> Date: Wed, 18 Sep 2013 14:48:00 -0000 From: "Andrew Burgess" User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: gdb-patches@sourceware.org cc: "Pedro Alves" Subject: PING: Re: [PATCH] Print for unavailable registers References: <5200F594.3050402@broadcom.com> In-Reply-To: <5200F594.3050402@broadcom.com> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2013-09/txt/msg00602.txt.bz2 On 06/08/2013 2:09 PM, Andrew Burgess wrote: > Following on from (but unrelated to) this mail: > http://sourceware.org/ml/gdb-patches/2013-08/msg00170.html > > Printing "*value not available*" for unavailable values within > "info registers" seems inconsistent to me, if we just print an > unavailable register we'll get "". > > The patch below makes "info registers" print "". I've re-written this patch, here's the latest version. OK to apply? Thanks, Andrew gdb/ChangeLog 2013-09-18 Andrew Burgess * infcmd.c (default_print_one_register_info): Print unavailable registers using val_print_uavailable. gdb/testsuite/ChangeLog 2013-09-18 Andrew Burgess * gdb.trace/unavailable.exp (gdb_unavailable_registers_test): Change pattern to expect string. Index: ./gdb/infcmd.c =================================================================== RCS file: /cvs/src/src/gdb/infcmd.c,v retrieving revision 1.335 diff -u -p -r1.335 infcmd.c --- ./gdb/infcmd.c 18 Sep 2013 14:02:31 -0000 1.335 +++ ./gdb/infcmd.c 18 Sep 2013 14:43:13 -0000 @@ -2030,7 +2030,8 @@ default_print_one_register_info (struct if (!value_entirely_available (val)) { - fprintf_filtered (file, "*value not available*\n"); + val_print_unavailable (file); + fprintf_filtered (file, "\n"); return; } else if (value_optimized_out (val)) Index: ./gdb/testsuite/gdb.trace/unavailable.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.trace/unavailable.exp,v retrieving revision 1.23 diff -u -p -r1.23 unavailable.exp --- ./gdb/testsuite/gdb.trace/unavailable.exp 15 Mar 2013 01:41:29 -0000 1.23 +++ ./gdb/testsuite/gdb.trace/unavailable.exp 18 Sep 2013 14:43:13 -0000 @@ -297,11 +297,11 @@ proc gdb_unavailable_registers_test { } test_register "\$pc" gdb_test "info registers" \ - "\\*value not available\\*.*\\*value not available\\*" \ + ".*" \ "info registers, multiple registers not available" gdb_test "info registers \$$spreg" \ - "\\*value not available\\*" \ + "" \ "info registers \$$spreg reports not available" gdb_test "tfind none" "#0 end .*" "cease trace debugging" > > Taking a look around we also had code in the sh64-tdep.c file that > printed "*value not available*", I've changed this to also print > "", however, (1) this is being printed for unavailable, > and optimized out registers, but it was kind-of broken in this regard > already, (2) I don't use this target so don't know if this is really > the best change, but it felt like it probably was, and (3) I've also > made the sh64 code return early after printing "", it > previously fell through and tried to print the value anyway, I'm > guessing this was a bug, but the code has been that way for a long > time now.... I'd be happy to drop the sh64 changes if that was > preferred. > > OK to apply? > > Thanks, > Andrew > > gdb/ChangeLog > > 2013-08-06 Andrew Burgess > > * infcmd.c (default_print_one_register_info): use > val_print_unavailable for unavailable values. > * sh64-tdep.c (sh64_do_register): Use val_print_unavailable for > unreadable registers. Return early for unreadable registers. > > gdb/testsuite/ChangeLog > > 2013-08-06 Andrew Burgess > > * gdb.trace/unavailable.exp (gdb_unavailable_registers_test): > Change expected pattern for unavailable registers to > . > > > diff --git a/gdb/infcmd.c b/gdb/infcmd.c > index f6a5290..297dad0 100644 > --- a/gdb/infcmd.c > +++ b/gdb/infcmd.c > @@ -2030,7 +2030,8 @@ default_print_one_register_info (struct ui_file *file, > > if (!value_entirely_available (val)) > { > - fprintf_filtered (file, "*value not available*\n"); > + val_print_unavailable (file); > + fprintf_filtered (file, "\n"); > return; > } > else if (value_optimized_out (val)) > diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c > index b640b1d..37fb72f 100644 > --- a/gdb/sh64-tdep.c > +++ b/gdb/sh64-tdep.c > @@ -2045,7 +2045,11 @@ sh64_do_register (struct gdbarch *gdbarch, struct ui_file *file, > > /* Get the data in raw format. */ > if (!deprecated_frame_register_read (frame, regnum, raw_buffer)) > - fprintf_filtered (file, "*value not available*\n"); > + { > + val_print_unavailable (file); > + fprintf_filtered (file, "\n"); > + return; > + } > > get_formatted_print_options (&opts, 'x'); > opts.deref_ref = 1; > diff --git a/gdb/testsuite/gdb.trace/unavailable.exp b/gdb/testsuite/gdb.trace/unavailable.exp > index 8e2e105..ed14798 100644 > --- a/gdb/testsuite/gdb.trace/unavailable.exp > +++ b/gdb/testsuite/gdb.trace/unavailable.exp > @@ -297,11 +297,11 @@ proc gdb_unavailable_registers_test { } { > test_register "\$pc" > > gdb_test "info registers" \ > - "\\*value not available\\*.*\\*value not available\\*" \ > + ".*" \ > "info registers, multiple registers not available" > > gdb_test "info registers \$$spreg" \ > - "\\*value not available\\*" \ > + "" \ > "info registers \$$spreg reports not available" > > gdb_test "tfind none" "#0 end .*" "cease trace debugging" > > > >