[1/3] make prompt_for_continue call throw_quit directly

Message ID 56745ED5.9020309@codesourcery.com
State New, archived
Headers

Commit Message

Sandra Loosemore Dec. 18, 2015, 7:30 p.m. UTC
  This is the patch previously suggested by Pedro here:

https://sourceware.org/ml/gdb-patches/2015-09/msg00637.html

to fix a problem I ran into when testing on a remote Windows host via 
SSH without a terminal or job control.  As Pedro said, when typing 'q' 
in response to a pagination prompt, there's no possibility of a SIGINT 
so we can bypass the parts of quit() handling that are intended to 
intercept ^C instead.

I confirmed that this fixes the bogus quit message I observed previously 
on Windows host, and did full regression testing on Linux host for 
nios2-linux-gnu target.

OK to commit?

-Sandra
  

Comments

Pedro Alves Dec. 18, 2015, 7:34 p.m. UTC | #1
On 12/18/2015 07:30 PM, Sandra Loosemore wrote:
> This is the patch previously suggested by Pedro here:
> 
> https://sourceware.org/ml/gdb-patches/2015-09/msg00637.html
> 
> to fix a problem I ran into when testing on a remote Windows host via 
> SSH without a terminal or job control.  As Pedro said, when typing 'q' 
> in response to a pagination prompt, there's no possibility of a SIGINT 
> so we can bypass the parts of quit() handling that are intended to 
> intercept ^C instead.
> 
> I confirmed that this fixes the bogus quit message I observed previously 
> on Windows host, and did full regression testing on Linux host for 
> nios2-linux-gnu target.
> 
> OK to commit?

OK.  Could you add a little comment to prevent someone from deciding later
that we should using quit() instead?

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/utils.c b/gdb/utils.c
index 284fbbb..862a802 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1868,7 +1868,7 @@  prompt_for_continue (void)
       while (*p == ' ' || *p == '\t')
 	++p;
       if (p[0] == 'q')
-	quit ();
+	throw_quit ("Quit");
       xfree (ignore);
     }
   immediate_quit--;