qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host


From: tomba
Subject: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host
Date: Wed, 15 Dec 2004 14:47:55 +0100
User-agent: Mutt/1.5.6+20040907i

Hi.
I'm trying to run quemu-cvs on WinXP SP1 host and MinGW with gcc v3.4.2,
but qemu after start just opens console window and hangs.

After some testing I came to conclusion that this is the offending piece
of code (cpu_exec.c):

#if defined(USE_CODE_COPY)
(...)
#endif
                    spin_unlock(&tb_lock);
                }
                tc_ptr = tb->tc_ptr;
                env->current_tb = tb;
                /* execute the generated code */
                gen_func = (void *)tc_ptr;
                printf("xxx: cpu-exec.c::cpu_exec() AFTER gen_func = (void 
*)tc_ptr\n");
#if defined(__sparc__)
(...)
#eise
                printf("xxx: cpu-exec.c::cpu_exec() BEFORE gen_func()\n");
                gen_func();
                printf("xxx: cpu-exec.c::cpu_exec() AFTER gen_func()\n");
#endif


The result after executing is like:

xxx: cpu-exec.c::cpu_exec() AFTER spin_unlock(&tb_lock)
xxx: cpu-exec.c::cpu_exec() AFTER gen_func = (void *)tc_ptr
xxx: cpu-exec.c::cpu_exec() BEFORE gen_func()

and then qemu hangs. Debugging this in VisualC gives me:
"Unhandled exception in qemu.exe: 0xC0000005: Access Violation"

Another strange thing is that sometimes after compile qemu makes the whole
first loop:

xxx: vl.c::main_loop() AFTER for(;;)
xxx: vl.c::main_loop() BEFORE ret=cpu_exec()
(...)
xxx: cpu-exec.c::cpu_exec() AFTER spin_unlock(&tb_lock)
xxx: cpu-exec.c::cpu_exec() AFTER gen_func = (void *)tc_ptr
xxx: cpu-exec.c::cpu_exec() BEFORE gen_func()
xxx: cpu-exec.c::cpu_exec() AFTER gen_func()
(...)
xxx: vl.c::main_loop() AFTER ret=cpu_exec()
xxx: vl.c::main_loop() BEFORE main_loop_wait(timeout)
xxx: vl.c::main_loop() AFTER main_loop_wait(timeout)
xxx: vl.c::main_loop() AFTER for(;;)
xxx: vl.c::main_loop() BEFORE ret=cpu_exec()
(...)
xxx: cpu-exec.c::cpu_exec() AFTER spin_unlock(&tb_lock)
xxx: cpu-exec.c::cpu_exec() AFTER gen_func = (void *)tc_ptr
xxx: cpu-exec.c::cpu_exec() BEFORE gen_func()
->hangs


Anyone have an idea what is wrong here?

t.

-- 
  Tomasz BÄ…tor  e-mail: address@hidden  ICQ: 101194886
 ------ ---- -- - -  -    -   -  -  -   -    -  - - -- ---- ------
          "Okay, let's see if I loaded this thing right."
                    -- last words in a RPG game




reply via email to

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