#ifndef KX_MEMORY_CHUNK_H #define KX_MEMORY_CHUNK_H #include #include class kxMemoryChunk { public: // Methods kxMemoryChunk(size_t size = 0); ~kxMemoryChunk(); void* operator new(size_t size); void operator delete(void* ptr); static kxMemoryChunk* GetBegin(); static kxMemoryChunk* GetEnd(); static unsigned long int GetCount(); static void Delete(void* data_ptr); static void Check(); protected: static void Dump(kxMemoryChunk* chunk); public: // DATA STACKFRAME m_StackFrame; CONTEXT m_Context; kxMemoryChunk* m_Prev; kxMemoryChunk* m_Next; void* m_Data; size_t m_Size; static HMODULE m_hImagehlpDll; static DWORD m_ImageType; static HANDLE m_hProcess; static HANDLE m_hThread; protected: // Vsechno zverstvo se deje zde... static kxMemoryChunk* m_Begin; static kxMemoryChunk* m_End; static unsigned long int m_Count; }; void* operator new(size_t size); void operator delete(void* ptr); #endif // KX_MEMORY_CHUNK_H