[Qemu-devel] Re: [PATCH] Fix to 'gdb detach' stub
Hi Daniel, Am 26.02.2010 18:13, schrieb Daniel Gutson: Hello Kevin, please let me know if this works. If so, please remember that I'd need somebody to commit this for me, since I don't have write-access. Undoing line wrap and tabs. I'm not a committer either. The patch format looks fine this time and it applies cleanly, so I expect it to be picked up by one of the committers. (If it's not in a week or two, re-post it as a top-level mail instead of an answer to another mail, so that it's more visible) Kevin
Re: [Qemu-devel] Re: [PATCH] Fix to 'gdb detach' stub
Am 22.02.2010 22:22, schrieb Daniel Gutson: [Re-done with git.] With this patch, 'gdb detach' correctly resumes the inferior execution after detaching the debugger. The bug was caused by qemu asking gdb to execute a syscall (isatty) after the detach, and then waiting (forever) for the reply. I fixed this by properly setting gdb_syscall_mode appropriately in the 'detach' packet handling, so subsequent syscalls are solved by qemu rather than gdb. Signed-off-by: Daniel Gutson dgut...@codesourcery.com --- gdbstub.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 91c5f68..92bb36d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1848,6 +1848,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) This line wrap corrupts the patch. Have you tried git send-email? case 'D': /* Detach packet */ gdb_breakpoint_remove_all(); + gdb_syscall_mode = GDB_SYS_DISABLED; And indentation is off here (qemu uses four spaces, no tabs). Kevin
[Qemu-devel] Re: [PATCH] Fix to 'gdb detach' stub
[Re-done with git.] With this patch, 'gdb detach' correctly resumes the inferior execution after detaching the debugger. The bug was caused by qemu asking gdb to execute a syscall (isatty) after the detach, and then waiting (forever) for the reply. I fixed this by properly setting gdb_syscall_mode appropriately in the 'detach' packet handling, so subsequent syscalls are solved by qemu rather than gdb. Signed-off-by: Daniel Gutson dgut...@codesourcery.com --- gdbstub.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 91c5f68..92bb36d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1848,6 +1848,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) case 'D': /* Detach packet */ gdb_breakpoint_remove_all(); + gdb_syscall_mode = GDB_SYS_DISABLED; gdb_continue(s); put_packet(s, OK); break; -- 1.6.2.4