Message ID | 20181026081653.24602-15-luc.michel@greensocs.com |
---|---|
State | New |
Headers | show |
Series | gdbstub: support for the multiprocess extension | expand |
On 10/26/18 1:16 AM, Luc Michel wrote: > 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 get confused if it receives packets with a s/get/gets/g Acked-by: Alistair Francis <alistair.francis@wdc.com> Alistair > thread-id it does not know about. > > Signed-off-by: Luc Michel <luc.michel@greensocs.com> > --- > gdbstub.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/gdbstub.c b/gdbstub.c > index b3461eff9e..09480df2bf 100644 > --- a/gdbstub.c > +++ b/gdbstub.c > @@ -1784,10 +1784,19 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) > return RS_IDLE; > } > > 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->g_cpu = cpu; > } > > #ifndef CONFIG_USER_ONLY >
diff --git a/gdbstub.c b/gdbstub.c index b3461eff9e..09480df2bf 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1784,10 +1784,19 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) return RS_IDLE; } 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->g_cpu = cpu; } #ifndef CONFIG_USER_ONLY
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 get confused if it receives packets with a thread-id it does not know about. Signed-off-by: Luc Michel <luc.michel@greensocs.com> --- gdbstub.c | 9 +++++++++ 1 file changed, 9 insertions(+)