refers to a technique in C++
to overload and/or redefine operator new
and operator delete
in order to intercept the memory allocation and deallocation calls, and thus debug a program for memory usage. It often involves defining a macro named DEBUG_NEW
, and makes new
become something like new(__FILE__, __LINE__)
to record the file/line information on allocation. Microsoft Visual C++
uses this technique in its Microsoft Foundation Classes
. There are some ways to extend this method to avoid using macro redefinition while still able to display the file/line information on some platforms.
There are many inherent limitations to this method. It applies only to C++, and cannot catch memory leaks by C functions like malloc. However, it can be very simple to use and also very fast, when compared to some more complete memory debugger solutions.