aard
(Dutch for "earth") A tool to check memory use for C++ programs, written by Steve Reiss <spr@cs.brown.edu> (who names his programs after living systems).
Aard tracks the state of each byte of memory in the heap and the stack. The state can be one of Undefined, Uninitialised, Free or Set. The program can detect invalid transitions (i.e. attempting to set or use undefined or free storage or attempting to access uninitialised storage).
In addition, the program keeps track of heap use through malloc and free and at the end of the run reports memory blocks that were not freed and that are not accessible (i.e. memory leaks).
The tools works using a spliced-in shared library on SPARCs running C++ 3.0.1 under SunOS 4.X.