Patchwork Re: Re: [PATCH] Fix to 'gdb detach' stub

login
register
mail settings
Submitter Daniel Gutson
Date Feb. 26, 2010, 5:13 p.m.
Message ID <4B88014E.5040806@codesourcery.com>
Download mbox | patch
Permalink /patch/46361/
State New
Headers show

Comments

Daniel Gutson - Feb. 26, 2010, 5:13 p.m.
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 <dgutson@codesourcery.com>
---
 gdbstub.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Kevin Wolf - Feb. 26, 2010, 5:28 p.m.
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
Aurelien Jarno - Feb. 27, 2010, 3:22 p.m.
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 <dgutson@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
> 
> 
> 
> 
>

Patch

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;