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.