X-Spam-Check-By: sourceware.org Message-ID: <45E62875.3090507@portugalmail.pt> Date: Thu, 01 Mar 2007 01:12:21 +0000 From: Pedro Alves 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 AT cygwin DOT com Subject: Re: GDB Ctrl-C Interrupt Fails WORKAROUND References: <37FD7E0C-3F61-4EB2-B5A2-9C86C87A45DA AT qualcomm DOT com> <20060615150456 DOT GA7830 AT trixie DOT casa DOT cgf DOT cx> <20070228234326 DOT GD9444 AT ns1 DOT anodized DOT com> <45E61B10 DOT 4080208 AT portugalmail DOT pt> <20070301003511 DOT GA4537 AT trixie DOT casa DOT cgf DOT 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 AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT 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/