From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20357 invoked by alias); 26 Apr 2010 14:32:51 -0000 Received: (qmail 20318 invoked by uid 22791); 26 Apr 2010 14:32:48 -0000 X-Spam-Check-By: sourceware.org Received: from pool-173-76-55-5.bstnma.fios.verizon.net (HELO cgf.cx) (173.76.55.5) by sourceware.org (qpsmtpd/0.83/v0.83-20-g38e4449) with ESMTP; Mon, 26 Apr 2010 14:32:43 +0000 Received: from ednor.cgf.cx (ednor.casa.cgf.cx [192.168.187.5]) by cgf.cx (Postfix) with ESMTP id 3540513C061; Mon, 26 Apr 2010 10:32:41 -0400 (EDT) Received: by ednor.cgf.cx (Postfix, from userid 201) id 315972B352; Mon, 26 Apr 2010 10:32:41 -0400 (EDT) Date: Mon, 26 Apr 2010 14:32:00 -0000 From: Christopher Faylor To: gdb-patches@sourceware.org, Pierre Muller Subject: Re: [RFA] windows-nat.c: Enable processed input at startup Message-ID: <20100426143241.GB1534@ednor.casa.cgf.cx> Mail-Followup-To: gdb-patches@sourceware.org, Pierre Muller References: <005401cae535$61adadc0$25090940$@muller@ics-cnrs.unistra.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <005401cae535$61adadc0$25090940$@muller@ics-cnrs.unistra.fr> User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00870.txt.bz2 On Mon, Apr 26, 2010 at 01:41:16PM +0200, Pierre Muller wrote: > This is the patch I was talking about in >a reply to this thread: >http://sourceware.org/ml/gdb/2010-04/msg00113.html > > It ensures that at startup, if GDB can connect to the console >the console mode is modified to enable processed input. > This make '^C' (ascii #3) to be interpreted as a >control event. > > > > >Pierre Muller >Pascal language support maintainer for GDB > > >2010-04-26 Pierre Muller > > * windows-nat.c (_initialize_windows_nat): Try to set > ENABLE_PROCESSED_INPUT for console mode if accessible. > >Index: windows-nat.c >=================================================================== >RCS file: /cvs/src/src/gdb/windows-nat.c,v >retrieving revision 1.208 >diff -u -p -r1.208 windows-nat.c >--- windows-nat.c 16 Apr 2010 07:49:35 -0000 1.208 >+++ windows-nat.c 26 Apr 2010 11:33:08 -0000 >@@ -2356,6 +2356,22 @@ void > _initialize_windows_nat (void) > { > struct cmd_list_element *c; >+ HANDLE std_in_handle; >+ >+ /* Try to enable processed input for the console. >+ This should allow to use '^C' to interrupt the debuggee >+ at least as log as the debugge does not modify the >+ console mode settings. */ >+ std_in_handle = CreateFile ("CONIN$", GENERIC_READ | GENERIC_WRITE, >+ FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); >+ >+ if (std_in_handle != INVALID_HANDLE_VALUE) >+ { >+ DWORD console_mode; >+ CHECK (GetConsoleMode (std_in_handle, &console_mode)); >+ console_mode = console_mode | ENABLE_PROCESSED_INPUT; >+ CHECK (SetConsoleMode (std_in_handle, console_mode)); >+ } > > init_windows_ops (); That has to be conditional on __CYGWIN__ since you'll be screwing up Cygwin's notion of the console state. And, the name std_in_handle is a misnomer. It should be console_handle or something like that. Can't you just set what you need and close the handle? I thought this setting was global. cgf