- Project tools
- How do I...
|Over 500 more tools...
If you were registered and logged in, you could join this project.
Elephant - C++ Memory Observer
Created by Paul Grenyer
What is Elephant? |
What do I need to build Elephant? |
What is Elephant?
Elephant is a C++ memory observer. It keeps track of all calls to
delete via custom implementations of
operator new and
operator delete. Observers can register to be notified of allocations and
deletions and used to detect memory leaks, keep a track of maximum memory usage or
for any other purpose, by implementing a simple interface.
A notification of an allocation consists of the address and size of the memory
allocated. The line number, function name and file name in which the allocation
takes place can be added by placing special macros in the client code. A notification
of a deletion consists of the address of the memory being freed.
Elephant is not intended to ship in production code. It is intended as a debugging
aid. Elephant�s functionality can be removed simply by relinking without the Elephant
static library. All other code can remain in place.
Elephant comes with a complete, Aeryn
based test suite to test that it behaves correctly on any given platform.
What do I need to build Elephant?
Microsoft Visual C++ 7.1
GNU G++ 3.2.3
Elephant uses up-to-date C++ techniques (including member function templates using
the Aeryn unit tests), as well as
some classes based on parts of Andrei Alexandrescu's
Loki library and therefore
requires a modern compiler. It has been tested on, and provides
make files or project
files for the following compilers:
It may be possible to get Elephant to compile on Microsoft Visual C++ 6.0.
||Library + Aeryn and Unit Tests
Elephant User Guide
Design and Implementation of Elephant
All Elephant documentation can be found here.
You can contact me at the following email address, paul (at) paulgrenyer.co.uk and
my website address is: http://www.paulgrenyer.co.uk/