www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15886] New: Add an uncaught exception handler


          Issue ID: 15886
           Summary: Add an uncaught exception handler
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: thecybershadow gmail.com

The runtime should provide a hook for uncaught exceptions which will be
executed BEFORE the stack is unwound, when rt_trapExceptions is set to 0.

Currently, it is too difficult to get a debugger on a live program for an
uncaught exception before the stack has been unwound. Unwinding the stack means
that function arguments and local variables from the program's state at the
point when the exception is thrown is not accessible.

Currently, rt.dwarfeh calls terminate(__LINE__) which calls abort(),
rt.deh_win64_posix calls terminate() which halts, and deh_win32 passes the
exception to the OS (which shows the standard Windows "program has stopped
working" dialog). Although it's possible to trap these in a debugger by
breakpointing the relevant functions from Druntime, doing so is
platform-dependent and vulnerable to breaking due to changes in Druntime, such
as the recent dwarf EH switch.

Apr 06 2016