Memory Validator - Overview
Memory Validator was created because of the frustration encountered whilst trying to use many of the already existing memory analysis tools on the market. The existing tools were too slow, or they lacked advanced query features, or they did not provide full lifetime analysis capabilities. Memory Validator addresses these needs and more. Memory Validator provides error detection for memory leaks, incorrect memory frees, data overruns, data underruns, uninitialised data.
Memory Validator provides multiple methods of examining data so that leaks can be found, memory allocation hotspots identified, memory page behaviour can be studied, current C++ object analysis can be examined. In addition to these views, a variety of queries can be made of the data so that objects can be found by type, memory address, size, page range and so forth.
To help determine dangling and leaked objects queries are provided for determining 'which object is pointing at this object?' and 'which objects is this object pointing at?'. Comprehensive filtering capabilities are provided to remove information about persistent leaks which cannot be removed (such leaks may be in 3rd party libraries which you cannot fix). No other tool provides such comprehensive reporting and querying capability.
To view the feature list for Memory Validator, click here.
You can view information on individual features of Memory Validator by taking one of the links at the left of this text, or you can follow the link at the bottom of the page to move to the next feature.
You can use Memory Validator in five ways:
- Inject Memory Validator into an already running executable
- Specify an executable to start, and Memory Validator will attach to that executable
- Specify an executable to watch, and Memory Validator will wait for the executable to start, then Memory Validator will attach to that executable. This feature is very useful for attaching to OLE servers that start when a document is opened inside a 3rd party application
- Link Memory Validator to your program so that you can call APIs provided by Memory Validator to provide extra functionality
- Link Memory Validator to your NT service.
Memory Validator provides a command line option and a session to session
compare to facilitate the use of Memory Validator in overnight regression
test suites.
Memory Validator does not require your program to be recompiled
or relinked. However if you wish to track user managed heaps, you will need
to write some software to call the API functions provided by Memory Validator
so that Memory Validator knows which objects to track.
Unlike many of its
competitors, Memory Validator does not cause significant drops in performance.
Some of Memory Validator's competitors cause programs to run as much as 10
times slower than normal. Memory Validator causes a target program to run marginally
slower than normal.

