|
From: | Joachim Henke |
Subject: | Re: [Qemu-devel] Mac OS X issues |
Date: | Tue, 13 Dec 2005 20:34:32 +0100 |
Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x000000100x00062f98 in tb_phys_invalidate (tb=0x8cad00, page_addr=4294967295) at /Volumes/Data/build/qemu/exec-all.h:249249 { This is the path to the crash (each function calling the next one): tb_invalidate_phys_page_range() [exec.c] tb_phys_invalidate() [exec.c] tb_reset_jump() [exec.c] tb_set_jmp_target() [exec-all.h]According to GDB, qemu crashes in the moment (or shortly after) when tb_set_jmp_target() is called (line 442, exec.c). As I wrote in my last post, the crash does not occur when cpu-exec.c is compiled with GCC4 while everything else is compiled with GCC3. Compiling only exec.c with GCC4 does not help. Since cpu-exec.c includes exec-all.h through target-pcc/exec.h this could be a point to start.
For completeness I did the opposit experiment with the same CVS code: Compiling everything with GCC4, but compiling cpu-exec.c with GCC3. And qemu crashes like a pure GCC3 build. GDB output is a little bit different, but points in fact to the same place. Note that the functions tb_phys_invalidate() <- tb_reset_jump() <- tb_set_jmp_target () are all inlined into tb_invalidate_phys_page_range().
Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x000000100x00061e20 in tb_invalidate_phys_page_range (start=630485, end=630486, is_cpu_write_access=1) at /Volumes/Data/build/qemu/exec.c: 442 442 tb_set_jmp_target(tb, n, (unsigned long)(tb->tc_ptr + tb- >tb_next_offset[n]));
I post this with the hope that the main authors of these files can help. Sinercely Jo.
[Prev in Thread] | Current Thread | [Next in Thread] |