diff options
| author | Steven Fuller <relnev@icculus.org> | 2001-07-01 00:55:22 +0000 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-20 02:09:04 +0200 |
| commit | 2186d5f3f95cd74a070a490d899291648d58667a (patch) | |
| tree | 55241a1afa3e1a22e0b6593a8dead0b703800f44 /src/mem3dcpp.cpp | |
| parent | 218ca90543758a20ac326e444ca0643174ca7384 (diff) | |
Initial revision
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 |
