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] |
On 2016-10-13 11:56, Bill Smith wrote:
On 2016-10-13 08:35, Bill Smith wrote:I'm trying to run my Windows C++ application which has a call to DebugBreak() to bring up the popup asking if you want to debug this application or terminate it. If I run the program within Cygwin, the program just exits. If I run the application from a Windows command prompt, I get the Windows popup that I'm expecting. It seems that the Cygwin shell is eating exceptions (sigsegv or similar signals?). Is there a way for me to disable this behavior?Not giving us much info to go on here - is this a Cygwin, curses, Cygwin/X, or Windows native app, and what kind of popup is used? If a Windows native app, is it a console app, or do you run it with cygstart from Cygwin? If a Cygwin or X app, have you tried running strace, gdb (or a GUI FE) on it? If the latter, please post or attach the results, and attach the output from cygcheck -svr in a reply.[Bill Smith] Sorry for the lack of info. This is a Windows native console application. Here's the source code: #include <windows.h> int main() { DebugBreak(); } Compiled it with Visual Studio 2010: cl debug.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. debug.cpp Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:debug.exe debug.obj When you run the application from a Windows command prompt, you get a popup similar to: http://imgur.com/a/VCgeW It says "debug.exe has stopped working" and it gives you the option of closing the program, checking online for a solution, or to debug the program. From a Cygwin shell, nothing happens. Another example is to do an access violation (segv) with a program like this: int main() { int* f = 0; *f = 1234; } In Cygwin, It'll say "Segmentation Fault" and fail. In Windows command prompt, I get the same popup with the other program which gives me the option to bring up the debugger. Our product is built using the Visual Studio compiler and we do the build & test from within a Cygwin shell (c:\cygwin\bin\sh.exe). I attached the cygcheck -svr output to this email.
As it pops up a Windows msgbox, and the process is being run under a pty (pseudo-tty) without any window available, that will just fail. Why not just trap and report any exceptions console style and return an error? If you need to do interactive debugging, run it under cmd or with cygstart. If you need the best of both worlds, you can translate your scripts from bash to cmd and have the option. -- -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |