On 02/15/2012 11:54 AM, Blue Swirl wrote: > On Wed, Feb 15, 2012 at 16:55, Meador Inge <mead...@codesourcery.com> wrote: >> Fix an issue where the GDB server implementation was allowing >> 'RUN_STATE_DEBUG' >> transitions to send a signal trap status back to the GDB client while a >> syscall >> is being processed. This eventually resulted in sending a SIGINT to the GDB >> client. >> >> Signed-off-by: Meador Inge <mead...@codesourcery.com> >> --- >> gdbstub.c | 3 ++- >> 1 files changed, 2 insertions(+), 1 deletions(-) >> >> diff --git a/gdbstub.c b/gdbstub.c >> index 7d470b6..34d2717 100644 >> --- a/gdbstub.c >> +++ b/gdbstub.c >> @@ -2480,7 +2480,6 @@ void gdb_do_syscall(gdb_syscall_complete_cb cb, const >> char *fmt, ...) >> #ifndef CONFIG_USER_ONLY >> vm_stop(RUN_STATE_DEBUG); >> #endif >> - s->state = RS_IDLE; >> va_start(va, fmt); >> p = buf; >> *(p++) = 'F'; >> @@ -2557,6 +2556,8 @@ static void gdb_read_byte(GDBState *s, int ch) >> #endif >> { >> switch(s->state) { >> + case RS_SYSCALL: >> + s->state = RS_IDLE; > > Missing break statement or a comment about fallthrough.
The fallthrough is intentional. I will add a comment. -- Meador Inge CodeSourcery / Mentor Embedded http://www.mentor.com/embedded-software