// Á¾ÇÕ¼Ö·ç¼Ç.cpp : ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡À» Á¤ÀÇÇÕ´Ï´Ù. // #include "stdafx.h" #include #include #include extern "C" { int mainCRTStartup(); } static int SunAllocHook(int nAllocType, void *pvData, size_t nSize, int nBlockUse, long lRequest, const unsigned char * szFileName, int nLine) { __UNUSED(nAllocType); __UNUSED(pvData); __UNUSED(nBlockUse); __UNUSED(szFileName); __UNUSED(nLine); //if (lRequest >= 74558) if (lRequest == 74568) { //__asm int 3; DWORD dwA = 0; dwA += 3; } return TRUE; } INT SunMemReportHook(INT iReportType, CHAR* pszOutMsg, INT* rRET) { static OFSTRUCT sof; static HANDLE hOUTPUT = (HANDLE)(HFILE)OpenFile(".\\memoryLeak.txt", &sof, OF_CREATE); DWORD dwWritten; CHAR strmsg[250]; _snprintf(strmsg, sizeof(strmsg), "%s\r\n", pszOutMsg); WriteFile(hOUTPUT, strmsg, strlen(strmsg), &dwWritten, NULL); *rRET = 0; return TRUE; } int WiseMainEntry() { _CrtSetAllocHook(SunAllocHook); //_CrtSetReportHook(SunMemReportHook); SharedMemoryPool::CreateInstance(); int iRET = mainCRTStartup(); SharedMemoryPool::DestroyInstance(); return iRET; } ITimeout sTestTimeout; int _tmain(int argc, _TCHAR* argv[]) { #ifndef __WAVERIX_AUTH_SERVER_TEST__ SolarDump stkSolarDump(".", MiniDumpWithFullMemory); #else SolarDump stkSolarDump; #endif if(sTestTimeout.IsExpired()) printf("HELLO\n"); StartMemoryLeakCheck(); //BreakPointOnMemoryLeak(50); for(INT iSTEP = eWISE_ROUTINES_LOGO; iSTEP void fnAssertionLogger4Pool(ePOOL_ERROR::ERROR_TYPE errTYPE, ePOOL_ERROR* IN pINFO) { TCHAR* pErrTypeMsg = ePOOL_ERROR::INVALID_REFERENCE == errTYPE ? _T("Freeing Address is Invalid") : ePOOL_ERROR::CANT_ALLOCATABLE == errTYPE ? _T("Can't Allocatable") : ePOOL_ERROR::CANT_DEALLOCATABLE == errTYPE ? _T("Can't DeAllocatable, Already Freed -or- Invalid Reference") : ePOOL_ERROR::NOT_MATCHED_ALLOCnDEALLOC == errTYPE ? _T("Free Count is not matched AllocCount") : NULL; SUNLOG(eCRITICAL_LOG, _T("[POOL ASSERTION][TYPE:%s] \"%s\""), pINFO->m_pszTYPENAME, pErrTypeMsg); //printf(_T("[POOL ASSERTION][TYPE:%s] \"%s\""), rINFO.m_pszTYPENAME, pErrTypeMsg); #ifdef _DEBUG __asm { int 3 } #endif // } DECLARE_BASE_WISE_STEP_FUNCTION() { CHAR strPath[256]; GetCurrentDirectory(sizeof(strPath), strPath); DISPMSG("WiseClient %s-%s Start\n- %s -\n", WISE_CLIENT_VERSION, WISE_CLIENT_BUILD_VERSION, strPath); MainFrame::CreateInstance(); CoreFrame::CreateInstance(); }; REGISTER_STEP_HANDLER_BASE(eWISE_ROUTINES_LOGO); static void BaseFuntionByModuleDisposer() { CoreFrame::DestroyInstance(); MainFrame::DestroyInstance(); } REGISTER_STEP_HANDLER(eWISE_ROUTINES_INIT_DISPOSER, BaseFuntionByModuleDisposer);