Hi : I want to get the value of cpu_index into a variable in translate-all.c, and pass the variable to a function in /tcg/i386/tcg-target.c.
It works fine on X86_32(Host) with ARM11MPCore(Guest). ARM11 single core also emulates fine on x86_64. However, I emulate ARM11MPCore (-smp 2), it show the "Segmentation fault" error. Works: - HOST- x86_32 GUEST- ARM11MPCore (1 core~4 core) - HOST- x86_64 GUEST- ARM11MPCore (1 core) Failed: - HOST- x86_64 GUEST- ARM11MPCore (2 core~4 core) These are the error messages and gdb debug info : Program received signal SIGSEGV, Segmentation fault. 0x0000000040c4551b in ?? () (gdb) bt #0 0x0000000040c4551b in ?? () #1 0x00007fffffffdca0 in ?? () #2 0x000000000052dd4f in tcg_out_modrm_offset (s=Cannot access memory at address 0x6c00654d) at /home/sue7785/qemu-0.15.1/tcg/i386/tcg-target.c:581 Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) x/20i 0x0000000040c4551b => 0x40c4551b: mov %ebx,0x4(%rsi) 0x40c4551e: mov %ebp,0x14(%r14) 0x40c45522: callq 0x54a242 <helper_sub_cc> 0x40c45527: mov 0xc4(%r14),%ebp 0x40c4552e: test %ebp,%ebp 0x40c45530: jne 0x40c45580 0x40c45536: push %rdi 0x40c45537: push %rsi 0x40c45538: push %rdx 0x40c45539: push %rcx 0x40c4553a: push %r8 0x40c4553c: push %r9 0x40c4553e: push %rax 0x40c4553f: push %rbx 0x40c45540: mov $0x1,%edi 0x40c45545: mov $0x40017588,%esi 0x40c4554a: mov $0xb,%edx 0x40c4554f: mov $0x10,%ecx 0x40c45554: callq 0x52d49a <trace_tb2> 0x40c45559: pop %rbx Thanks in advance, Regards, Meg