Files
Vangers/server/win32f.cpp
2018-03-16 08:32:47 +09:00

65 lines
1.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
#include <crtdbg.h>
#include <malloc.h>
#ifdef _DEBUG
int __GlobalSize__;
int __cdecl MyAllocHook( int nAllocType, void * pvData, unsigned int nSize, int nBlockUse, long lRequest, const char * szFileName, int nLine )
{
/* char *operation[] = { "", "allocating", "re-allocating", "freeing" };
char *blockType[] = { "Free", "Normal", "CRT", "Ignore", "Client" };*/
/*if ( nBlockUse == _CRT_BLOCK ) // Ignore internal C runtime library allocations
return( 1 );*/
switch(nAllocType){
case _HOOK_ALLOC: __GlobalSize__ += nSize;
break;
case _HOOK_FREE:
__GlobalSize__ -= nSize;
break;
}
return( 1 ); // Allow the memory operation to proceed
}
#endif
void win32_debugSet(void)
{
#ifdef _DEBUG
int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
tmpDbgFlag |= _CRTDBG_REPORT_FLAG;
tmpDbgFlag |= _CRTDBG_ALLOC_MEM_DF; // включает проверку heap'а
// tmpDbgFlag &= ~_CRTDBG_ALLOC_MEM_DF; // выключае проверку hеap'а
// tmpDbgFlag |= _CRTDBG_CHECK_ALWAYS_DF; // проверка heap'а при каждом выделении памяти
tmpDbgFlag |= _CRTDBG_CHECK_CRT_DF; // проверка внутреннего runtime-heap'а
// tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF; // не освобождать на самом деле память
// tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF; // ловить лики
_CrtSetDbgFlag(tmpDbgFlag);
_CrtSetAllocHook( MyAllocHook );
#endif
}
void win32_check(void)
{
_ASSERTE(_CrtCheckMemory()) ;
}
void win32_getMemStat(int& max,int& cur)
{
#ifdef _DEBUG
_CrtMemState state;
_CrtMemCheckpoint(&state);
max = state.lHighWaterCount;
cur = state.lTotalCount;
#endif
}