From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26146 invoked by alias); 27 Jun 2003 19:31:19 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26139 invoked from network); 27 Jun 2003 19:31:18 -0000 Received: from unknown (HELO localhost.redhat.com) (216.129.200.2) by sources.redhat.com with SMTP; 27 Jun 2003 19:31:18 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 772B02B5F; Fri, 27 Jun 2003 15:31:18 -0400 (EDT) Message-ID: <3EFC9B86.5060300@redhat.com> Date: Fri, 27 Jun 2003 19:31:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030223 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Fred Fish , Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] Testing REGISTER_NAME in mips-linux-nat.c References: <20030627172013.54F648B5FD@bletchley.vert.intrinsity.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-06/txt/msg00827.txt.bz2 > A recent change to mips_register_name to return a empty string for > register numbers < NUM_REGS is causing problems with the native mips > linux port. The change in mips_register_name is: Arrgh, they keep turning up :-( > + /* Map [NUM_REGS .. 2*NUM_REGS) onto the raw registers, but then > + don't make the raw register names visible. */ > + int rawnum = regno % NUM_REGS; > + if (regno < NUM_REGS) > + return ""; > > Now for example when mips_linux_cannot_fetch_register() is called with > regno == PC_REGNUM, it will return 1 and reading of the PC will return > zero as the PC value. > > I think this is the correct patch, but I'm not 100% sure. Perhaps we > can just eliminate the REGISTER_NAME check completely. The assertion: gdb_assert (regno >= 0 && regno < NUM_REGS); holds so, yes, eliminating REGISTER_NAME would make sense. Hmm, how come this doesn't just use PTRACE_GETREGS? Daniel? Andrew > ============================================================================ > > > 2003-06-27 Fred Fish > > * mips-linux-nat.c (mips_linux_cannot_fetch_register): Only test > register name if it is a pseudo register. > > > Index: mips-linux-nat.c > =================================================================== > RCS file: /mips/newtools/fsf/gdb/gdb/mips-linux-nat.c,v > retrieving revision 1.2 > diff -c -p -r1.2 mips-linux-nat.c > *** mips-linux-nat.c 2003/02/18 21:36:24 1.2 > --- mips-linux-nat.c 2003/06/27 17:11:38 > *************** > *** 29,35 **** > int > mips_linux_cannot_fetch_register (int regno) > { > ! if (REGISTER_NAME (regno)[0] == 0) > return 1; > if (regno == PS_REGNUM) > return 1; > --- 29,35 ---- > int > mips_linux_cannot_fetch_register (int regno) > { > ! if (regno >= NUM_REGS && REGISTER_NAME (regno)[0] == 0) > return 1; > if (regno == PS_REGNUM) > return 1; > *************** mips_linux_cannot_fetch_register (int re > *** 42,48 **** > int > mips_linux_cannot_store_register (int regno) > { > ! if (REGISTER_NAME (regno)[0] == 0) > return 1; > if (regno == PS_REGNUM) > return 1; > --- 42,48 ---- > int > mips_linux_cannot_store_register (int regno) > { > ! if (regno >= NUM_REGS && REGISTER_NAME (regno)[0] == 0) > return 1; > if (regno == PS_REGNUM) > return 1; >