diff options
Diffstat (limited to 'src/mem3dcpp.cpp')
| -rw-r--r-- | src/mem3dcpp.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/mem3dcpp.cpp b/src/mem3dcpp.cpp new file mode 100644 index 0000000..906b589 --- /dev/null +++ b/src/mem3dcpp.cpp @@ -0,0 +1,48 @@ +#include "mem3dc.h" + +#if DBGMALLOC + +#if 1 + +// try and turn C++ new/delete tracking on such that +// we can do a malloc dump when the global objects +// with associated memory allocated is recored, the +// deallocation is recored, and then a malloc dump +// is done + +// note that some global objects wont have their memory +// allocations/deallocations in the constructor/destructor +// tracked through record_malloc/record_free, but since +// global objects are deconstructed in the reverse order +// from construction, the deallocation type in the destructor +// will correspond to the allocation type in the constructor + +int __cpp_new_recording = 0; + +class DebugObject +{ +public: + DebugObject(); + ~DebugObject(); +}; + +DebugObject::DebugObject() +{ + __cpp_new_recording = 1; +} + +DebugObject::~DebugObject() +{ + __cpp_new_recording = 0; + DumpMallocInfo(DUMPTOFILE); +} + +static DebugObject dbo; + +#else + +int __cpp_new_recording = 1; + +#endif + +#endif |
