delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/12/03/10:04:58

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <47541AFA.3040701@enea.se>
Date: Mon, 03 Dec 2007 16:04:26 +0100
From: Stefan Bylund <steby AT enea DOT se>
User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Problem suspending Cygwin-based GDB from Eclipse/CDT (and some findings)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Hi,

We have a source code debug solution based on Eclipse / CDT / GDB / GCC 
/ Cygwin DLL. We are using Eclipse 3.2.2 / CDT 3.1.2 / GDB 6.3 / GCC 
3.4.4 / Cygwin DLL 1.5.19-4 (cygwin1.dll).

Until now, we have only supported Windows XP but recently we were forced 
to upgrade to a newer version of the cygwin1.dll (1.5.24-2) since we had 
to support Windows Vista, and Cygwin-based GCCs didn't work correctly 
with cygwin1.dll 1.5.19-4 on Windows Vista due to heap errors in 
cygwin1.dll. However, GDB works fine with cygwin1.dll 1.5.19-4 on 
Windows Vista.

Unfortunately, I just discovered that suspending GDB from Eclipse/CDT no 
longer works. So I tried all versions of the cygwin1.dll from 1.5.19-4 
to the forthcoming 1.5.25-3 and found that starting from version 
1.5.20-1, the signal handling in cygwin1.dll seems to have changed in 
such a way that suspending GDB from Eclipse/CDT no longer works. Note 
that versions before 1.5.19-4 of the cygwin1.dll also works correct with 
respect to suspending GDB from Eclipse/CDT.

By searching the cygwin mailing list, it seems that it is a general 
problem when trying to programatically send a SIGINT from one process to 
another process.

I looked at the cygwin change list from 1.5.19-4 to 1.5.20-1 
(http://cygwin.com/ml/cygwin-announce/2006-07/msg00000.html) and noticed 
the following signal-related changes:

* cgf: When sending signals, assume that any code which is not directly
associated with a DLL or an executable is user code.

* cgf: Pass cygwin signals to gdb. Fix the dreaded SIGSEGV found in some
pthread functions.

* corinna: Implement sigignore and sigset.

* cgf: Make SA_RESTART sigaction flag work more like linux.

It seems that one or more of the changes listed above (or some other 
change(s) described in 
http://cygwin.com/ml/cygwin-announce/2006-07/msg00000.html) is the cause 
of this problem. It is a bit ironic that one of the changes mentions 
passing cygwin signals to gdb since it is exactly this functionality 
that is now broken but, from our experience, worked in 1.5.19-4.

I'm cross posting this mail to the CDT mailing list as well, since there 
may be other Eclipse/CDT users interested in this issue.

Is there anything I can do to help in finding out why versions starting 
from 1.5.20-1 of the cygwin1.dll no longer supports programatically 
sending a SIGINT from one process to another? If nothing else, I can at 
least help out with testing.


Best Regards,
Stefan Bylund


-- 
---------------------------------
Stefan Bylund
Senior Software Engineer
Enea
Skalholtsgatan 9,
Box 1033, SE-164 21 Kista, Sweden
Direct: +46 8 50 71 43 25
Mobile: +46 709 71 43 25
stefan DOT bylund AT enea DOT com
www.enea.com
---------------------------------
Enea - Embedded for Leaders
---------------------------------


--
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019