diff options
-rw-r--r-- | cpus.c | 2 | ||||
-rw-r--r-- | gdbstub.c | 4 | ||||
-rw-r--r-- | include/exec/gdbstub.h | 2 |
3 files changed, 5 insertions, 3 deletions
@@ -463,7 +463,7 @@ static void cpu_handle_guest_debug(CPUArchState *env) { CPUState *cpu = ENV_GET_CPU(env); - gdb_set_stop_cpu(env); + gdb_set_stop_cpu(cpu); qemu_system_debug_request(); cpu->stopped = true; } @@ -2506,8 +2506,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) return RS_IDLE; } -void gdb_set_stop_cpu(CPUArchState *env) +void gdb_set_stop_cpu(CPUState *cpu) { + CPUArchState *env = cpu->env_ptr; + gdbserver_state->c_cpu = env; gdbserver_state->g_cpu = env; } diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h index ba20afa091..ded4160e57 100644 --- a/include/exec/gdbstub.h +++ b/include/exec/gdbstub.h @@ -16,7 +16,7 @@ typedef void (*gdb_syscall_complete_cb)(CPUArchState *env, void gdb_do_syscall(gdb_syscall_complete_cb cb, const char *fmt, ...); int use_gdb_syscalls(void); -void gdb_set_stop_cpu(CPUArchState *env); +void gdb_set_stop_cpu(CPUState *cpu); void gdb_exit(CPUArchState *, int); #ifdef CONFIG_USER_ONLY int gdb_queuesig (void); |