[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] gdbstub: fix sThreadInfo handler
From: |
Max Filippov |
Subject: |
[Qemu-devel] [PATCH] gdbstub: fix sThreadInfo handler |
Date: |
Mon, 22 Jul 2013 09:24:27 +0400 |
After the commit 182735e cpu: Make first_cpu and next_cpu CPUState
we can no longer blindly use cpu->next_cpu->env_ptr to get CPUArchState
of the next CPU, as the next_cpu is NULL in the last CPU.
This fixes segfault caused by gdb command 'info threads'.
Signed-off-by: Max Filippov <address@hidden>
---
gdbstub.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/gdbstub.c b/gdbstub.c
index 0ee82a9..deb8159 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -2406,10 +2406,11 @@ static int gdb_handle_packet(GDBState *s, const char
*line_buf)
} else if (strcmp(p,"sThreadInfo") == 0) {
report_cpuinfo:
if (s->query_cpu) {
+ CPUState *cpu = ENV_GET_CPU(s->query_cpu);
snprintf(buf, sizeof(buf), "m%x",
- cpu_index(ENV_GET_CPU(s->query_cpu)));
+ cpu_index(cpu));
put_packet(s, buf);
- s->query_cpu = ENV_GET_CPU(s->query_cpu)->next_cpu->env_ptr;
+ s->query_cpu = cpu->next_cpu ? cpu->next_cpu->env_ptr : NULL;
} else
put_packet(s, "l");
break;
--
1.7.7.6
- [Qemu-devel] [PATCH] gdbstub: fix sThreadInfo handler,
Max Filippov <=