qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Get only TCG code without execution


From: Peter Maydell
Subject: Re: [Qemu-devel] Get only TCG code without execution
Date: Mon, 16 Jan 2012 12:29:22 +0000

On 16 January 2012 12:23, Rajat Goyal <address@hidden> wrote:
> The situation is like this. The most basic multi-threaded program (using
> pthreads) which just prints something like "I am Thread 1" and "I am Thread
> 2" does not work over the QEMU user emulator. There are no output messages
> saying "I am thread 1" etc. when the program binary is run over qemu-arm or
> qemu-i386. For qemu-i386, the reason is alright - there is no implementation
> for the futex syscall. But for qemu-arm, the syscall trace shows " ***
> longjmp causes uninitialized stack frame ***: qemu-arm terminated". And
> hence, the entire TCG code for the binary is not obtained in the QEMU log
> since QEMU does not complete execution of the binary.

Which version of QEMU are you using? The "uninitialized stack frame"
bug should be fixed in 1.0: https://bugs.launchpad.net/qemu/+bug/823902

> What is the way out of this? The reason I need TCG code is because my
> project work is to write a semantics for TCG micro-operations and then
> compare my semantics with a semantics for ARM instructions being written by
> someone else. To test my semantics, I need the corresponding TCG code for
> several different multi-threaded ARM binaries.

Why does this have to be a multi-threaded binary? In the multithreaded
case, the instructions executed by QEMU won't be deterministic (it will
depend on how the host OS schedules the multiple threads) so it's going
to be hard to compare a long trace output to something else.

-- PMM



reply via email to

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