3 This software is a copyrighted work licensed under the terms of the
4 Cygwin license. Please consult the file "CYGWIN_LICENSE" for
9 #define exception_list void
10 typedef struct _DISPATCHER_CONTEXT
*PDISPATCHER_CONTEXT
;
14 static EXCEPTION_DISPOSITION
myfault (EXCEPTION_RECORD
*, exception_list
*,
15 CONTEXT
*, PDISPATCHER_CONTEXT
);
16 static EXCEPTION_DISPOSITION
handle (EXCEPTION_RECORD
*, exception_list
*,
17 CONTEXT
*, PDISPATCHER_CONTEXT
);
19 exception () __attribute__ ((always_inline
))
21 /* Install SEH handler. */
25 _ZN9exception6handleEP17_EXCEPTION_RECORDPvP8_CONTEXTP19_DISPATCHER_CONTEXT, \
29 .rva 1b, 2f, 2f, 2f \n\
32 ~exception () __attribute__ ((always_inline
))
41 LONG CALLBACK
myfault_altstack_handler (EXCEPTION_POINTERS
*);
43 class cygwin_exception
49 void dump_exception ();
50 void open_stackdumpfile ();
52 cygwin_exception (PUINT_PTR in_framep
, PCONTEXT in_ctx
= NULL
, EXCEPTION_RECORD
*in_e
= NULL
):
53 framep (in_framep
), ctx (in_ctx
), e (in_e
), h (NULL
) {}
55 PCONTEXT
context () const {return ctx
;}
56 EXCEPTION_RECORD
*exception_record () const {return e
;}