On Sat, Mar 29, 2014 at 12:25:07PM -0400, Ken Brown wrote: >On 3/20/2014 11:02 AM, Corinna Vinschen wrote: >> On Mar 20 01:58, Andrey Repin wrote: >>> Greetings, Corinna Vinschen! >>> >>>> The code is now practically equivalent to what is in 1.7.28. Only the >>>> VectoredContinueHandler, which was the reason Cygwin's exception handler >>>> could be called twice, is not called anymore. Instead there's a vectored >>>> exception handler which is only called during debugging. >>> >>>> Before: >>> >>>> if (!handler_installed) >>>> { >>>> handler_installed = true; >>>> SetUnhandledExceptionFilter (handle); >>>> AddVectoredContinueHandler (1, handle); >>>> } >>> >>>> After: >>> >>>> if (!handler_installed) >>>> { >>>> handler_installed = true; >>>> SetUnhandledExceptionFilter (handle); >>>> AddVectoredExceptionHandler (1, handle_while_being_debugged); >>>> } >>> >>>> If anybody can explain this weird behaviour, please educate me. >>> >>> I can't explain the behavior, but I could say, that setting >>> "handler_installed = true;" before the handler is actually installed is not >>> quite right. >>> Unless that variable is used inside either of two functions called >>> afterward, >>> I would move it down to the end of `if' block. >> >> BTDT. This isn't the problem. I *may* have found the culprit today, >> but I ripped apart a lot of the code so I'm not really sure yet. Stay >> tuned. > >The problems I've reported seem to all be fixed in the latest snapshot >(2014-03-29 15:21:43 UTC). Thanks!
I'm sure Corinna will be happy to hear that. She put in LONG hours getting that issue sorted out. I helped too, of course, by offering important "I don't like that implementation" style feedback. It was one of those 50/50 collaborations where one person does all the work and the other person mentions it on a mailing list. cgf -- 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