Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Felix Buenemann <atmosfear@users.sf.net> (by way of Felix Buenemann <atmosfear@users.sf.net>)
To: Andrew Cagney <ac131313@cygnus.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: current CVS gdb and SSE xmm registers don't work
Date: Mon, 16 Jul 2001 12:32:00 -0000	[thread overview]
Message-ID: <0107161723500E.13471@astral> (raw)

On Monday, 16. July 2001 15:00, you wrote:
> Andrew Cagney <ac131313@cygnus.com> writes:
> > > Hi,
> > >
> > > with current gdb+dejagnu (1day old) and also gdb from 20010622,
> > > displaying of the Pentium IIIs SSE registers in gdb doesn't work
> > > correct anymore, when I do for example print $xmm0 all 4 values
> > > displayed are -NaN (always, even directly after loading data into that
> > > register).
> > > I'm using Linux 2.4.4 kernel with suse patches, compiled for PIII, gcc
> > > 2.95.3 and glibc 2.2. Software I debugged was compiled with -g3
> > > compilerflag.
> > >
> > >
> > > This is what it looks like:
> > > (gdb) print $xmm0
> > > $12 = {f = {-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff),
> > > -nan(0x7fffff)}}
> > >
> > > I know that it worked with older snapshot from around april/may 2001,
> > > but I've deleted that one :(
> > > -- Best Regards, Felix
> >
> > What happens if you use gdb/i387-tdep.c version 1.9 instead of 1.12?
> > Sounds like my ``tweek'' may still be breaking it :-/
>
> I don't think your tweek has anything to do with it Andrew.  From the
> information Felix provides, I conclude that somehow a
> PTRACE_GETFPXREGS request is failing (see
> i386-linux-nat.c:fetch_fpxregs()).  Therefore I would suspect this to
> be a kernel bug, or misconfiguration.  Felix, can debug GDB itself
> (using GDB :-)) and see why that particular ptrace call is failing?  I
> cannot do this myself, since I don't have a PIII.

hmm, ok I've recompiled gdb with debugging info, then did 'gdb gdb' ind gdb/
source dir and from (gdb-top) I set up breakpoint for
i386-linux-nat.c:fetch_fpxregs then I issued run
/root/develop/mplayer/main/mplayer to startup gdb to be debugged with program
to be debugged and from (gdb) I did run [mplayers parameters]. So now from
(gdb) I get nan as all four xmm dwords and from (top-gdb) it's 0 for all
dwords (so it seems to work correct fro top-gdb).

Now how shall I check if the fetch_fpxregs() funtion is disfunctioning?
(sorry I'm not so familiar with debugging debuggers  :) and mostly use gdb to
dissassemble and check asm code)

For now I've attached a backtrace from top-gdb, maybe it helps you.
And thanks for the help!

> Mark

--
Best Regards,
   Felix
From ac131313@cygnus.com Mon Jul 16 13:37:00 2001
From: Andrew Cagney <ac131313@cygnus.com>
To: Nick Duffek <nsd@redhat.com>
Cc: jimb@cygnus.com, ezannoni@cygnus.com, gdb-patches@sources.redhat.com
Subject: Re: [RFA] findvar.c: support LOC_BASEREG[_ARG] on Harvard archs
Date: Mon, 16 Jul 2001 13:37:00 -0000
Message-id: <3B535097.5040106@cygnus.com>
References: <200107161713.f6GHDNC08483@rtl.cygnus.com>
X-SW-Source: 2001-07/msg00386.html
Content-length: 1117

> Index: gdb/findvar.c
> ===================================================================
> diff -up gdb/findvar.c gdb/findvar.c> --- gdb/findvar.c	Mon Jul 16 12:41:21 2001
> +++ gdb/findvar.c	Mon Jul 16 12:39:40 2001
> @@ -612,9 +612,10 @@ addresses have not been bound by the dyn
>      case LOC_BASEREG_ARG:
>        {
>  	char *buf = (char*) alloca (MAX_REGISTER_RAW_SIZE);
> +	memset (buf, 0, MAX_REGISTER_RAW_SIZE);
>  	get_saved_register (buf, NULL, NULL, frame, SYMBOL_BASEREG (var),
>  			    NULL);
> -	addr = extract_address (buf, REGISTER_RAW_SIZE (SYMBOL_BASEREG (var)));
> +	addr = POINTER_TO_ADDRESS (builtin_type_void_data_ptr, buf);
>  	addr += SYMBOL_VALUE (var);
>  	break;


FYI, I think this change will break the MIPS o64 ABI in big-endian mode.
Under that ABI, 8 byte registers are used (and saved on the stack) but 
sizeof (void*) == 4.  If I'm reading the above change correctly, 
pointer_to_address() will always extract the value from the first 4 
bytes of of the register when, for o64/BE, it should be using the second 
4 bytes.

(The change is on the right track though).

	Andrew




             reply	other threads:[~2001-07-16 12:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-16 12:32 Felix Buenemann [this message]
     [not found] <01071511090404.13471@astral>
2001-07-15 12:54 ` Andrew Cagney
2001-07-16  6:01   ` Mark Kettenis

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=0107161723500E.13471@astral \
    --to=atmosfear@users.sf.net \
    --cc=ac131313@cygnus.com \
    --cc=gdb-patches@sourceware.cygnus.com \
    /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