|
@@ -238,6 +238,14 @@ CPUArchState *cpu_copy(CPUArchState *env)
|
|
|
|
|
|
new_cpu->tcg_cflags = cpu->tcg_cflags;
|
|
new_cpu->tcg_cflags = cpu->tcg_cflags;
|
|
memcpy(new_env, env, sizeof(CPUArchState));
|
|
memcpy(new_env, env, sizeof(CPUArchState));
|
|
|
|
+#if defined(TARGET_I386) || defined(TARGET_X86_64)
|
|
|
|
+ new_env->gdt.base = target_mmap(0, sizeof(uint64_t) * TARGET_GDT_ENTRIES,
|
|
|
|
+ PROT_READ | PROT_WRITE,
|
|
|
|
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
|
|
|
|
+ memcpy(g2h_untagged(new_env->gdt.base), g2h_untagged(env->gdt.base),
|
|
|
|
+ sizeof(uint64_t) * TARGET_GDT_ENTRIES);
|
|
|
|
+ OBJECT(new_cpu)->free = OBJECT(cpu)->free;
|
|
|
|
+#endif
|
|
|
|
|
|
/* Clone all break/watchpoints.
|
|
/* Clone all break/watchpoints.
|
|
Note: Once we support ptrace with hw-debug register access, make sure
|
|
Note: Once we support ptrace with hw-debug register access, make sure
|