From 2186d5f3f95cd74a070a490d899291648d58667a Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sun, 1 Jul 2001 00:55:22 +0000 Subject: Initial revision --- src/mem3dcpp.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/mem3dcpp.cpp (limited to 'src/mem3dcpp.cpp') 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 -- cgit v1.3