Bug 97278 - Windows: SEH and crash-handling / OpenGLZone
Summary: Windows: SEH and crash-handling / OpenGLZone
Status: RESOLVED DUPLICATE of bug 97277
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
5.1.0.1 rc
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-20 14:09 UTC by Michael Meeks
Modified: 2016-01-20 16:27 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Meeks 2016-01-20 14:09:06 UTC
It -appears- that windows SEH unwinds local variables; so things like:

{
   OpenGLZone aZone;
   <segv>
}

Will happily do ~OpenGLZone() - as the SEH exception is unwound.

Since commit:

http://cgit.freedesktop.org/libreoffice/core/commit/?id=977a2f14dbb23a8ff1281e799f0c0af43aa2fb52

It appears that we catch all un-handled exceptions and print information about them - and call FatalError.

This would (seem) to include seg faults - but most interestingly, the FatalError handler in desktop/ doesn't appear to trigger the auto-save mechanism; just throws up a native dialog with "SEH exception" or somesuch - which seems crazy-odd.

At least, this is what I suspect ;-) it seems our seg-fault handler:

sal/osl/w32/signal.c uses:

    SetUnhandledExceptionFilter(SignalHandlerFunction);

while I imagine catch (...) at the very top-level handles ~everything at this stage ;-)

Quite possibly we want to use:

AddVectoredExceptionHandler

Instead to catch these bad-boys, and/or turn off SEH or ...

Needs further investigation.
Comment 1 Cor Nouws 2016-01-20 16:27:22 UTC

*** This bug has been marked as a duplicate of bug 97277 ***