From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 128620 invoked by alias); 14 Apr 2017 18:02:56 -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 128605 invoked by uid 89); 14 Apr 2017 18:02:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-14.8 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS,SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy=Thursday, thursday X-HELO: mail.baldwin.cx Received: from bigwig.baldwin.cx (HELO mail.baldwin.cx) (96.47.65.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 14 Apr 2017 18:02:54 +0000 Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id E1F9F10A888; Fri, 14 Apr 2017 14:02:52 -0400 (EDT) From: John Baldwin To: Luis Machado Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 4/4] Don't throw an error in 'info registers' for unavailable MIPS GP registers. Date: Fri, 14 Apr 2017 18:02:00 -0000 Message-ID: <2093712.xnU824ggfa@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <6561c934-04ca-8e6d-0b4a-160b6bfebba1@codesourcery.com> References: <20170412183727.22483-1-jhb@FreeBSD.org> <20170412183727.22483-5-jhb@FreeBSD.org> <6561c934-04ca-8e6d-0b4a-160b6bfebba1@codesourcery.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg00467.txt.bz2 On Thursday, April 13, 2017 11:37:15 AM Luis Machado wrote: > On 04/12/2017 01:37 PM, John Baldwin wrote: > > index 674b5098b0..4ec0c31341 100644 > > --- a/gdb/mips-tdep.c > > +++ b/gdb/mips-tdep.c > > @@ -6533,8 +6533,14 @@ print_gp_register_row (struct ui_file *file, struct frame_info *frame, > > > > /* OK: get the data in raw format. */ > > if (!deprecated_frame_register_read (frame, regnum, raw_buffer)) > > - error (_("can't read register %d (%s)"), > > - regnum, gdbarch_register_name (gdbarch, regnum)); > > + { > > + fprintf_filtered (file, "%*.*s ", > > + (int) mips_abi_regsize (gdbarch) * 2, > > + (int) mips_abi_regsize (gdbarch) * 2, > > + ""); > > + col++; > > + continue; > > + } > > What is the output you're getting in this case? On FreeBSD (which doesn't support fir) I now get this: O32: (gdb) info registers zero at v0 v1 a0 a1 a2 a3 R0 00000000 00000000 00000000 00000000 00000001 7fffecac 7fffecb4 004182c0 t0 t1 t2 t3 t4 t5 t6 t7 R8 00000000 00000000 00000061 2e9a1b76 00124f9b 00000001 00001000 00401964 s0 s1 s2 s3 s4 s5 s6 s7 R16 7fffecb4 00000001 7fffecac 00000000 00000000 00000000 00000000 00000000 t8 t9 k0 k1 gp sp s8 ra R24 0000008d 004033d0 00000000 00000000 00420320 7ffeec60 00000000 00401980 sr lo hi bad cause pc 00008413 0000d0d7 000002d1 004033d0 00000024 004033d0 fsr fir 00000000 It was more dire on a target that doesn't supply all registers. For example, I have an out of tree target for FreeBSD kernels and stopped threads in FreeBSD's kernel only supply a subset of GPRs. Without the patch examining registers for a stopped thread looks like this: (kgdb) info registers zero at v0 v1 R0 0000000000000000 can't read register 91 (at) with the patch it looks like this: (kgdb) info registers zero at v0 v1 R0 0000000000000000 a0 a1 a2 a3 R4 a4 a5 a6 a7 R8 t0 t1 t2 t3 R12 s0 s1 s2 s3 R16 00000000ffff00fa 0000000000000000 0000000000000000 0000010000000000 s4 s5 s6 s7 R20 00000000ffff00fa 0000000000000000 0000000000000000 0000010000000000 t8 t9 k0 k1 R24 0000007fffffefa0 gp sp s8 ra R28 0000000000000102 00000000fffd002e 0000007fffffefa0 sr lo hi bad 0000000000000010 cause pc 0000000000000000 fsr fir -- John Baldwin