Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000010
0x00062f98 in tb_phys_invalidate (tb=0x8cad00,
page_addr=4294967295) at /Volumes/Data/build/qemu/exec-all.h:249
249 {
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: 0x00000010
0x00061e20 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.
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel