Re: [Qemu-devel] Re: Re: [PATCH] Fix to 'gdb detach' stub

2010-02-27 Thread Aurelien Jarno
On Fri, Feb 26, 2010 at 02:13:50PM -0300, Daniel Gutson wrote:
> 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.

Thanks applied.

> Thanks!
>   Daniel.
> 
> [old same text.]
> 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 
> ---
>  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
> 
> 
> 
> 
> 

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net




[Qemu-devel] Re: Re: [PATCH] Fix to 'gdb detach' stub

2010-02-26 Thread 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.

Thanks!
Daniel.

[old same text.]
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 
---
 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