From: Daniel Jacobowitz <dan@debian.org>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Johannes Stezenbach <js@linuxtv.org>, linux-mips@linux-mips.org
Subject: Re: gdb vs. gdbserver with -mips3 / 32bitmode userspace
Date: Wed, 1 Feb 2006 11:44:24 -0500 [thread overview]
Message-ID: <20060201164423.GA4891@nevyn.them.org> (raw)
In-Reply-To: <Pine.LNX.4.64N.0601311724340.31371@blysk.ds.pg.gda.pl>
On Tue, Jan 31, 2006 at 05:36:13PM +0000, 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.
All of this code is flat-out wrong, as far as I'm concerned. I have a
project underway which will fix it, as a nice side effect.
GDB is trying to do something confusing, but admirable, here. When
you're running on a 64-bit system the full 64 bits are always there:
even if the binary only uses half of them (is this true in Linux? I
don't remember if the relevant control bits get fudged, it's been a
while; it's definitely true on some other systems). Thus it's possible
for a bogus instruction to corrupt the top half of a register, leading
to otherwise inexplicable problems.
So if the remote stub knows about 64-bit registers, it should report
them to GDB, and GDB should accept and display them, and still handle
32-bit frames. If the remote stub doesn't, then there's no option but
to report the 32-bit registers.
Really, GDB ought to (and soon will I hope) autodetect which ones were
sent.
--
Daniel Jacobowitz
CodeSourcery
next prev parent reply other threads:[~2006-02-01 16:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-31 17:15 gdb vs. gdbserver with -mips3 / 32bitmode userspace Johannes Stezenbach
2006-01-31 17:36 ` Maciej W. Rozycki
2006-01-31 18:14 ` Johannes Stezenbach
2006-01-31 18:42 ` Thiemo Seufer
2006-01-31 19:23 ` Johannes Stezenbach
2006-02-01 19:07 ` Johannes Stezenbach
2006-02-01 19:20 ` Johannes Stezenbach
2006-02-01 16:44 ` Daniel Jacobowitz [this message]
2006-02-01 16:53 ` Maciej W. Rozycki
2006-02-01 17:26 ` Michael Uhler
2006-02-01 17:26 ` Michael Uhler
2006-02-01 19:24 ` Daniel Jacobowitz
2006-02-02 13:26 ` Ralf Baechle
2006-02-01 19:44 ` Johannes Stezenbach
2006-02-02 13:43 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060201164423.GA4891@nevyn.them.org \
--to=dan@debian.org \
--cc=js@linuxtv.org \
--cc=linux-mips@linux-mips.org \
--cc=macro@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox