kernel32: Process DBG_RIPEXCEPTION events like regular exceptions.

oldstable
Sebastian Lackner 2014-06-23 02:56:12 +02:00 committed by Alexandre Julliard
parent 2fcecdb72e
commit 0114be0978
3 changed files with 9 additions and 4 deletions

View File

@ -85,6 +85,13 @@ BOOL WINAPI WaitForDebugEvent(
event->u.DebugString.nDebugStringLength = data.exception.params[0];
break;
}
else if (data.exception.exc_code == DBG_RIPEXCEPTION && data.exception.nb_params >= 2)
{
event->dwDebugEventCode = RIP_EVENT;
event->u.RipInfo.dwError = data.exception.params[0];
event->u.RipInfo.dwType = data.exception.params[1];
break;
}
event->u.Exception.dwFirstChance = data.exception.first;
event->u.Exception.ExceptionRecord.ExceptionCode = data.exception.exc_code;
event->u.Exception.ExceptionRecord.ExceptionFlags = data.exception.flags;
@ -128,10 +135,6 @@ BOOL WINAPI WaitForDebugEvent(
case UNLOAD_DLL_DEBUG_EVENT:
event->u.UnloadDll.lpBaseOfDll = wine_server_get_ptr( data.unload_dll.base );
break;
case RIP_EVENT:
event->u.RipInfo.dwError = data.rip_info.error;
event->u.RipInfo.dwType = data.rip_info.type;
break;
}
done:
/* nothing */ ;

View File

@ -1212,6 +1212,7 @@
#define DBG_TERMINATE_PROCESS ((NTSTATUS) 0x40010004)
#define DBG_CONTROL_C ((NTSTATUS) 0x40010005)
#define DBG_PRINTEXCEPTION_C ((NTSTATUS) 0x40010006)
#define DBG_RIPEXCEPTION ((NTSTATUS) 0x40010007)
#define DBG_CONTROL_BREAK ((NTSTATUS) 0x40010008)
#define DBG_COMMAND_EXCEPTION ((NTSTATUS) 0x40010009)
#define DBG_EXCEPTION_NOT_HANDLED ((NTSTATUS) 0x80010001)

View File

@ -623,6 +623,7 @@ typedef DWORD FLONG;
#define DBG_TERMINATE_PROCESS ((DWORD) 0x40010004)
#define DBG_CONTROL_C ((DWORD) 0x40010005)
#define DBG_PRINTEXCEPTION_C ((DWORD) 0x40010006)
#define DBG_RIPEXCEPTION ((DWORD) 0x40010007)
#define DBG_CONTROL_BREAK ((DWORD) 0x40010008)
#define DBG_COMMAND_EXCEPTION ((DWORD) 0x40010009)
#define DBG_EXCEPTION_NOT_HANDLED ((DWORD) 0x80010001)