X-Spam-Check-By: sourceware.org
Message-ID: <45E62875.3090507@portugalmail.pt>
Date: Thu, 01 Mar 2007 01:12:21 +0000
From: Pedro Alves <pedro_alves@portugalmail.pt>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.9) Gecko/20061207 Thunderbird/1.5.0.9 Mnenhy/0.7.4.0
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: GDB Ctrl-C Interrupt Fails WORKAROUND
References: <E5AED0BA-EE62-4D97-96CE-8A96D0C0F559@qualcomm.com> <37FD7E0C-3F61-4EB2-B5A2-9C86C87A45DA@qualcomm.com> <20060615150456.GA7830@trixie.casa.cgf.cx> <20070228234326.GD9444@ns1.anodized.com> <45E61B10.4080208@portugalmail.pt> <20070301003511.GA4537@trixie.casa.cgf.cx>
In-Reply-To: <20070301003511.GA4537@trixie.casa.cgf.cx>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Antivirus: avast! (VPS 000719-0, 28-02-2007), Outbound message
X-Antivirus-Status: Clean
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Christopher Faylor escreveu:
> On Thu, Mar 01, 2007 at 12:15:12AM +0000, Pedro Alves wrote:
>> Is there a reason DebugBreakProcess can't be used from inside
>> gdb if sending a ctrl-c with GenerateConsoleCtrlEvent (CTRL_C_EVENT, pid)
>> doesn't work?
> 
> I suppose that it could be used for that but it might be tricky figuring
> out when it was required and when it wasn't.  You wouldn't want to
> interrupt the process twice if it already saw the CTRL-C.  Although,
> maybe if you used this you could tell the inferior process not to
> process CTRL-C at all via some CreateProcess setting.
> 

What about doing it the other way around?  Use DebugBreakProcess if
available, and fallback to GenerateConsoleCtrlEvent?  Is there anything
internal to Cygwin that uses it?  We could teach gdb that the next
BreakPoint inside kernel32 (, or whatever dll DebugBreakProcess breaks in,)
is mapped to SIGINT, remap the event, and switch to the main thread, so
the user doesn't see we stopped inside kernel32.

Cheers,
Pedro Alves



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

