00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef INCL_WIN32_MEMTRACKER
00020 #define INCL_WIN32_MEMTRACKER
00021
00024 #define MAX_LENGHT_FILE 256
00025
00026 #include <stdio.h>
00027 #include "base/Log.h"
00028 #include "base/util/utils.h"
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 class MemTracker {
00039
00040 private:
00041
00042
00043 ArrayList allocList;
00044
00045
00046 bool tracking;
00047
00048 public:
00049
00050
00051 MemTracker(bool useMemTracking);
00052 ~MemTracker();
00053
00054 void addTrack(DWORD addr, DWORD asize, const char *fname, DWORD lnum);
00055 void removeTrack(DWORD addr);
00056 void dumpUnfreed();
00057
00058 void enableMemTracker();
00059 void disableMemTracker();
00060
00061 bool isMemTracking();
00062
00063 };
00064
00065
00066
00067
00068
00069 class AllocInfo : public ArrayElement {
00070
00071 public:
00072 DWORD address;
00073 DWORD size;
00074 char file[MAX_LENGHT_FILE];
00075 DWORD line;
00076
00077 ArrayElement* clone();
00078 };
00079
00080
00082 #endif