/** * @brief * @param * @see * @remarks * @code * @endcode * @return **/ DWORD __stdcall DebugCoreCallback(_In_ const DEBUG_EVENT* debug_event, _In_ DWORD_PTR tag) { _ASSERTE(NULL != debug_event); _ASSERTE(NULL != tag); if (NULL == debug_event || NULL == tag) return DBG_EXCEPTION_NOT_HANDLED; Debugger* debugger = (Debugger*) tag; DWORD ret = debugger->handle_debug_event(debug_event); //> debuggee is terminating if (EXIT_PROCESS_DEBUG_EVENT == debug_event->dwDebugEventCode) { debugger->stop(); } return ret; }