Ignore:
Timestamp:
Jun 23, 2011, 1:33:43 PM (14 years ago)
Author:
dmik
Message:

kernel32: Propagate exceptions further along the OS/2 chain instead of terminating the application if the last Win32 exception handler (eg the SEH one) returns ExceptionContinueSearch. This lets unhandled exceptions be seen by eg PROCDUMP.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/exceptions.cpp

    r21645 r21647  
    12491249        if((!fIsOS2Image || fSEHEnabled) && !fExitProcess)  //Only for real win32 apps or if SEH enabled
    12501250        {
    1251                 if(OSLibDispatchException(pERepRec, pERegRec, pCtxRec, p) == FALSE)
    1252                 {
    1253                         pCtxRec->ctx_env[0] |= 0x1F;
    1254                         pCtxRec->ctx_stack[0].losig = 0;
    1255                         pCtxRec->ctx_stack[0].hisig = 0;
    1256                         pCtxRec->ctx_stack[0].signexp = 0;
    1257                 }
     1251            if(OSLibDispatchException(pERepRec, pERegRec, pCtxRec, p) == FALSE)
     1252            {
     1253                pCtxRec->ctx_env[0] |= 0x1F;
     1254                pCtxRec->ctx_stack[0].losig = 0;
     1255                pCtxRec->ctx_stack[0].hisig = 0;
     1256                pCtxRec->ctx_stack[0].signexp = 0;
     1257            }
     1258            else
     1259            {
    12581260                dprintf(("KERNEL32: OS2ExceptionHandler: fix and continue\n"));
    12591261                goto continueexecution;
    1260         }
    1261         else
    1262         {
    1263                 dprintf(("KERNEL32: OS2ExceptionHandler: continue search\n"));
    1264                 goto continuesearch;
    1265         }
     1262            }
     1263        }
     1264        dprintf(("KERNEL32: OS2ExceptionHandler: continue search\n"));
     1265        goto continuesearch;
    12661266
    12671267    case XCPT_PROCESS_TERMINATE:
     
    15191519                goto continueexecution;
    15201520            }
     1521            else
     1522            {
     1523                goto continuesearch;
     1524            }
    15211525        }
    15221526        else {
Note: See TracChangeset for help on using the changeset viewer.