Problem suspending Cygwin-based GDB from Eclipse/CDT (and some findings)

Stefan Bylund steby@enea.se
Mon Dec 3 17:03:00 GMT 2007


Hi again,

I got a response on my cross-post to the CDT mailing list from Doug 
Schaefer, the CDT lead, where he said that the SIGINT handling in Cygwin 
changed sometime last year and that there are newer builds of CDT 3.2.1 
that has adapted to the new of handling SIGINTs in Cygwin. I tried it 
and it works :)

So, I guess we can close this issue.

Best Regards,
Stefan Bylund


Stefan Bylund wrote:

> 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.bylund@enea.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/



More information about the Cygwin mailing list