From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2463 invoked by alias); 6 Aug 2013 13:09:59 -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 2453 invoked by uid 89); 6 Aug 2013 13:09:59 -0000 X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_MED,RCVD_IN_HOSTKARMA_W,RDNS_NONE autolearn=ham version=3.3.1 Received: from Unknown (HELO mms1.broadcom.com) (216.31.210.17) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 06 Aug 2013 13:09:58 +0000 Received: from [10.9.208.53] by mms1.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Tue, 06 Aug 2013 06:05:52 -0700 X-Server-Uuid: 06151B78-6688-425E-9DE2-57CB27892261 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; Tue, 6 Aug 2013 06:09:42 -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; Tue, 6 Aug 2013 06:09:42 -0700 Received: from [10.177.73.61] (unknown [10.177.73.61]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 5C22AF2D72 for ; Tue, 6 Aug 2013 06:09:42 -0700 (PDT) Message-ID: <5200F594.3050402@broadcom.com> Date: Tue, 06 Aug 2013 13:09:00 -0000 From: "Andrew Burgess" User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 To: "gdb-patches@sourceware.org" Subject: [PATCH] Print for unavailable registers Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2013-08/txt/msg00171.txt.bz2 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 "". 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"