gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
When gdb_set_stop_cpu() is called with a CPU associated to a process currently not attached by the GDB client, return without modifying the stop CPU. Otherwise, GDB gets confused if it receives packets with a thread-id it does not know about. Signed-off-by: Luc Michel <luc.michel@greensocs.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Message-id: 20181207090135.7651-15-luc.michel@greensocs.com [PMM: fix checkpatch comment style nit] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
970ed9064a
commit
160d858dd6
10
gdbstub.c
10
gdbstub.c
@ -1798,6 +1798,16 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
|
|||||||
|
|
||||||
void gdb_set_stop_cpu(CPUState *cpu)
|
void gdb_set_stop_cpu(CPUState *cpu)
|
||||||
{
|
{
|
||||||
|
GDBProcess *p = gdb_get_cpu_process(gdbserver_state, cpu);
|
||||||
|
|
||||||
|
if (!p->attached) {
|
||||||
|
/*
|
||||||
|
* Having a stop CPU corresponding to a process that is not attached
|
||||||
|
* confuses GDB. So we ignore the request.
|
||||||
|
*/
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
gdbserver_state->c_cpu = cpu;
|
gdbserver_state->c_cpu = cpu;
|
||||||
gdbserver_state->g_cpu = cpu;
|
gdbserver_state->g_cpu = cpu;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user