This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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 ( 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 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 --------------------------------- Enea - Embedded for Leaders ---------------------------------

-- Unsubscribe info: Problem reports: Documentation: FAQ:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]