linux-mips
[Top] [All Lists]

Re: gdb vs. gdbserver with -mips3 / 32bitmode userspace

To: "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: gdb vs. gdbserver with -mips3 / 32bitmode userspace
From: Johannes Stezenbach <js@linuxtv.org>
Date: Tue, 31 Jan 2006 19:14:14 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <Pine.LNX.4.64N.0601311724340.31371@blysk.ds.pg.gda.pl>
Mail-followup-to: Johannes Stezenbach <js@linuxtv.org>, "Maciej W. Rozycki" <macro@linux-mips.org>, linux-mips@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20060131171508.GB6341@linuxtv.org> <Pine.LNX.4.64N.0601311724340.31371@blysk.ds.pg.gda.pl>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.11
On Tue, Jan 31, 2006, Maciej W. Rozycki wrote:
> On Tue, 31 Jan 2006, Johannes Stezenbach wrote:
> 
> > I think (maybe in error ;-), that all binaries compiled for
> > a 32bit ABI, but a 64bit ISA, have this flag set, as the kernel
> > will refuse to execute 64bt code (i.e. not o32 or n32 ABI). Therefore,
> > shouldn't gdb also evaluate this flag when deciding about the ISA
> > register size?
> 
>  O32 implies 32-bit registers no matter what ISA is specified (while 
> o32/MIPS-III is effectively o32/MIPS-II, o32/MIPS-IV makes a difference), 
> therefore it's a bug.  You should try sending your proposal to 
> <gdb-patches@sources.redhat.com> instead.  But I smell the problem is 
> elsewhere -- mips_isa_regsize() shouldn't be called for the "cooked" 
> registers and these are ones you should only see under Linux or, as a 
> matter of fact, any hosted environment.  See mips_register_type() for a 
> start.

Yes, that's why I said I'm confused about mips_isa_regsize() vs.
mips_abi_regsize().

mips_abi_regsize() correctly says the register size is 32bit for o32,
but mips_register_type() calls mips_isa_regsize(), not
mips_abi_regsize(). That's why I chose to "fix" mips_isa_regsize().

Or should mips_register_type() simply call mips_abi_regsize()?

Or is the correct fix to change gdbserver to transfer registers
in mips_isa_regsize() size, i.e. 64bit for 64bit ISA?
(But gdb would't use the upper 32bits of the registers anyway
with o32 ABI, and this would be more complicated to fix.)

I can't decide :-(


Johannes

<Prev in Thread] Current Thread [Next in Thread>