qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Bug] qemu-system-ppc: "invalid/unsupported opcode" dur


From: Alexander Graf
Subject: Re: [Qemu-devel] [Bug] qemu-system-ppc: "invalid/unsupported opcode" during debug session
Date: Wed, 30 Dec 2009 19:00:04 +0100


Am 30.12.2009 um 18:46 schrieb Aurelien Jarno <address@hidden>:

On Wed, Dec 30, 2009 at 03:39:32PM +0100, Alexander Graf wrote:

Am 29.12.2009 um 22:07 schrieb Aurelien Jarno <address@hidden>:

On Tue, Dec 29, 2009 at 04:09:17PM +0100, Stefan Weil wrote:
Test environment:

* ppc-softmmu/qemu-system-ppc running on x86_64 host
* emulated ppc is running debian lenny



While debugging on the emulated ppc (each time when
a shared library is loaded after "r" command?),
qemu-system-ppc prints this error message:

invalid/unsupported opcode: 00 - 00 - 00 (00000000) 4800fa44 1



If logging is enabled, the error message goes to qemu.log:

IN:
0xc0013488:  nop
0xc001348c:  rlwinm  r3,r3,0,0,19
0xc0013490:  li      r4,128
0xc0013494:  mtctr   r4
0xc0013498:  mr      r6,r3
0xc001349c:  dcbst   r0,r3

invalid/unsupported opcode: 00 - 00 - 00 (00000000) 4800fa44 1
IN:
0x4800fa40:  twge    r2,r2
0x4800fa44:  .long 0x0


The problem is that QEMU doesn't stop the decoding of instructions
when
it encounters a trap instruction. We should probably either end the TB in that case, or avoid printing "invalid/unsupported opcode", as this
instruction will actually never been executed.

Given how seldom they occur, it's probably best (easiest to read) to end
the TB.


The question is to know if there are other conditions than branches and
trap where code can be translated, but then never executed.

We don't fix that by hacking the invalid opcode print either, because we'd still have to mark instructions we can't determine if an instruction is invalid later on.

IMHO the best solution would actually be to just not print out anything except for qemu.log if -d is used.

Alex





reply via email to

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