void DebugEventSource::SendModuleUnloadEvent(Module* pModule) { if(!EventEnabled(DEBUG_EVENT_TYPE_UNLOAD_MODULE)) return; DebugEventPayload payload; payload.type = DEBUG_EVENT_TYPE_UNLOAD_MODULE; payload.ModuleLoadUnload.pModuleHeader = (CORDB_ADDRESS)pModule->GetModuleHeader(); SendRawEvent(&payload); }
void DebugEventSource::SendExceptionFirstPassFrameEnteredEvent(CORDB_ADDRESS ipInFrame, CORDB_ADDRESS frameSP) { if(!EventEnabled(DEBUG_EVENT_TYPE_EXCEPTION_FIRST_PASS_FRAME_ENTER)) return; DebugEventPayload payload; payload.type = DEBUG_EVENT_TYPE_EXCEPTION_FIRST_PASS_FRAME_ENTER; payload.Exception.ip = ipInFrame; payload.Exception.sp = frameSP; SendRawEvent(&payload); }
void DebugEventSource::SendExceptionUnhandledEvent() { if(!EventEnabled(DEBUG_EVENT_TYPE_EXCEPTION_UNHANDLED)) return; DebugEventPayload payload; payload.type = DEBUG_EVENT_TYPE_EXCEPTION_UNHANDLED; payload.Exception.ip = (CORDB_ADDRESS)0; payload.Exception.sp = (CORDB_ADDRESS)0; SendRawEvent(&payload); }
void DebugEventSource::SendExceptionCatchHandlerFoundEvent(CORDB_ADDRESS handlerIP, CORDB_ADDRESS HandlerFrameSP) { if(!EventEnabled(DEBUG_EVENT_TYPE_EXCEPTION_CATCH_HANDLER_FOUND)) return; DebugEventPayload payload; payload.type = DEBUG_EVENT_TYPE_EXCEPTION_CATCH_HANDLER_FOUND; payload.Exception.ip = handlerIP; payload.Exception.sp = HandlerFrameSP; SendRawEvent(&payload); }
void DebugEventSource::SendExceptionThrownEvent(CORDB_ADDRESS faultingIP, CORDB_ADDRESS faultingFrameSP) { if(!EventEnabled(DEBUG_EVENT_TYPE_EXCEPTION_THROWN)) return; DebugEventPayload payload; payload.type = DEBUG_EVENT_TYPE_EXCEPTION_THROWN; payload.Exception.ip = faultingIP; payload.Exception.sp = faultingFrameSP; SendRawEvent(&payload); }
void DebugEventSource::SendCustomEvent(void* payload, int length) { if (!EventEnabled(DEBUG_EVENT_TYPE_CUSTOM)) return; DebugEventPayload rawPayload; rawPayload.type = DEBUG_EVENT_TYPE_CUSTOM; rawPayload.Custom.payload = (CORDB_ADDRESS)payload; rawPayload.Custom.length = length; SendRawEvent(&rawPayload); }