qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [4799] Add instruction counter.


From: Blue Swirl
Subject: Re: [Qemu-devel] [4799] Add instruction counter.
Date: Fri, 11 Jul 2008 19:42:15 +0300

On 7/11/08, Robert Reif <address@hidden> wrote:
> Paul Brook wrote:
>
> > Revision: 4799
> >
> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4799
> > Author:   pbrook
> > Date:     2008-06-29 01:03:05 +0000 (Sun, 29 Jun 2008)
> >
> > Log Message:
> > -----------
> > Add instruction counter.
> >
> >
> >
>  This patch breaks sparc32 for me.
>
>  A bisection shows:
>
>  4798   works
>  4799   doesn't build
>  4800   doesn't work (crashes with illegal instruction)
>
>  running qemu-g in sparc-test produces:
>
>  ./qemu-g: line 4:  9859 Illegal instruction     qemu-system-sparc -kernel
> vmlinux-2.6.11+tcx -initrd linux.img -append "root=/dev/ram"
>
>  running under valgrind produces this:
>
>  valgrind --trace-children=yes qemu-system-sparc -kernel vmlinux-2.6.11+tcx
> -initrd linux.img -append "root=/dev/ram"
>  ==9861== Memcheck, a memory error detector.
>  ==9861== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
>  ==9861== Using LibVEX rev 1806, a library for dynamic binary translation.
>  ==9861== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
>  ==9861== Using valgrind-3.4.0.SVN, a dynamic binary instrumentation
> framework.
>  ==9861== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
>  ==9861== For more details, rerun with: -v
>  ==9861==
>  ==9861== Warning: set address range perms: large range 144179200
> (undefined)
>  vex x86->IR: unhandled instruction bytes: 0xFF 0xFF 0xFF 0xFF
>  vex x86->IR: unhandled instruction bytes: 0xFF 0xFF 0xFF 0xFF
>  ==9861== valgrind: Unrecognised instruction at address 0x114BA050.
>  ==9861== Your program just tried to execute an instruction that Valgrind
>  ==9861== did not recognise.  There are two possible reasons for this.
>  ==9861== 1. Your program has a bug and erroneously jumped to a non-code
>  ==9861==    location.  If you are running Memcheck and you just saw a
>  ==9861==    warning about a bad jump, it's probably your program's fault.
>  ==9861== 2. The instruction is legitimate but Valgrind doesn't handle it,
>  ==9861==    i.e. it's Valgrind's fault.  If you think this is the case or
>  ==9861==    you are not sure, please let us know and we'll try to fix it.
>  ==9861== Either way, Valgrind will now raise a SIGILL signal which will
>  ==9861== probably kill your program.
>  ==9861==
>  ==9861== Process terminating with default action of signal 4 (SIGILL)
>  ==9861==  Illegal opcode at address 0x114BA050
>  ==9861==    at 0x114BA050: ???
>  ==9861==
>
>  This is on a RedHat 9 system:
>
>  uname -a
>  Linux dell 2.4.20-31.9smp #1 SMP Tue Apr 13 17:40:10 EDT 2004 i686 i686
> i386 GNU/Linux
>
>  gcc --version
>  gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

I can't reproduce the problem, with valgrind or without. I also tried
recompiling with different gccs but still everything works fine. I
have retired all real i386 machines so my tests were run inside an
i386 chroot on an amd64 system, maybe that causes problems. Does
anyone else see this error?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]