6 #if defined( HOST_WIN32 )
9 static LPTOP_LEVEL_EXCEPTION_FILTER old_excpfilter;
12 static __stdcall LONG exception_filter( LPEXCEPTION_POINTERS info )
15 switch( info->ExceptionRecord->ExceptionCode )
17 case EXCEPTION_ACCESS_VIOLATION:
18 case EXCEPTION_STACK_OVERFLOW:
22 case EXCEPTION_FLT_DIVIDE_BY_ZERO:
23 case EXCEPTION_FLT_OVERFLOW:
24 case EXCEPTION_INT_DIVIDE_BY_ZERO:
25 case EXCEPTION_INT_OVERFLOW:
30 return old_excpfilter( info );
41 #define FB_SETUPSIGNAL(n,h) \
42 sigTb[n].oldhnd = signal( n, h ); \
43 sigTb[n].errnum = FB_RTERROR_##n;
50 if( (sig < 0) || (sig >= NSIG) || (sigTb[sig].errnum ==
FB_RTERROR_OK) )
62 fb_End( sigTb[sig].errnum );
67 memset( sigTb, 0,
sizeof(sigTb) );
79 #if defined( HOST_WIN32 )
80 old_excpfilter = SetUnhandledExceptionFilter( exception_filter );