Fixed bad exception handler chain termination.

oldstable
Eric Pouech 2000-06-25 12:54:11 +00:00 committed by Alexandre Julliard
parent 68dd679043
commit 18bd3f693b
1 changed files with 13 additions and 2 deletions

View File

@ -84,7 +84,18 @@ DWORD WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers)
req->first = 0;
req->context = *epointers->ContextRecord;
if (!server_call_noerr( REQ_EXCEPTION_EVENT )) *epointers->ContextRecord = req->context;
if (req->status == DBG_CONTINUE) return EXCEPTION_CONTINUE_EXECUTION;
switch (req->status)
{
case DBG_CONTINUE:
return EXCEPTION_CONTINUE_EXECUTION;
case DBG_EXCEPTION_NOT_HANDLED:
TerminateProcess( GetCurrentProcess(), epointers->ExceptionRecord->ExceptionCode );
break; /* not reached */
case 0: /* no debugger is present */
break;
default:
FIXME("Unsupported yet debug continue value %d (please report)\n", req->status);
}
if (pdb->top_filter)
{
@ -142,7 +153,7 @@ DWORD WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers)
WaitForSingleObject(hEvent, INFINITE);
ret = EXCEPTION_CONTINUE_SEARCH;
} else {
ERR("Couldn't start debugger (%s)\n", buffer);
ERR("Couldn't start debugger (%s) (%ld)\n", buffer, GetLastError());
}
CloseHandle(hEvent);
} else {