All pastes #369150 Raw Edit

kxMemoryChunk.h 3

public cpp v1 · immutable
#369150 ·published 2007-02-23 16:34 UTC
rendered paste body
#ifndef KX_MEMORY_CHUNK_H#define KX_MEMORY_CHUNK_H#include <windows.h>#include <DbgHelp.h>#include <string>#include <vector>struct ModuleEntry{	std::string imageName;	std::string moduleName;	DWORD baseAddress;	DWORD size;};typedef std::vector< ModuleEntry > ModuleList;typedef ModuleList::iterator ModuleListIter;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();	typedef struct _HelperInfo	{		bool m_SymbolsInited;		STACKFRAME m_StackFrame;		CONTEXT    m_Context;					HMODULE m_hImagehlpDll;		DWORD m_ImageType;		HANDLE m_hProcess;		HANDLE m_hThread;		DWORD offsetFromSymbol;	} HelperInfo;protected:	static void LazyInit();	static bool LazyInitSymbols();	static void LazyCleanup();	static void Dump(kxMemoryChunk* chunk);	static bool ReloadSymbols();	static bool FillModuleList( ModuleList& modules, DWORD pid, HANDLE hProcess );	static bool FillModuleListTH32( ModuleList& modules, DWORD pid );	static bool FillModuleListPSAPI( ModuleList& modules, DWORD pid, HANDLE hProcess );	static HelperInfo m_HelperInfo;public:  // DATA		kxMemoryChunk* m_Prev;	kxMemoryChunk* m_Next;	void* m_Data;	size_t m_Size;	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