hand touching liquid metal

C# and C++ memory leak detector - Memory Validator 9.50

Memory Validator is a memory leak and memory error detection software tool for use by software developers, software quality assurance testers and customer support staff using .Net, .Net Core (C#, VB.Net, etc) and native language compilers (C, C++, Delphi, VB6, Fortran etc).

Use Memory Validator to:

  • Monitor billions of allocations in your application.
  • Detect memory leaks and handle leaks (GDI leaks, etc).
  • Find memory and handle leaks in native, .Net and mixed-mode .Net applications.
  • Find double deletes, double frees, calls to deleted objects and related memory errors.
  • Find uninitialized memory in C++ objects.
  • Command line API to support automated use (Jenkins, etc).
  • Run regression tests to find memory leaks in your overnight builds.

3 Minute Video

Find memory leaks quickly and easily with Memory Validator.


Memory Validator provides many displays to provide you with more insight into the data you have collected.

Easy to use

To use Memory Validator all you need is debugging information for your application and Memory Validator can get to work. You do not need to modify your software, recompile or relink your software to use Memory Validator.

  • Launch your application with Memory Validator.
  • Memory Validator will launch and attach to your application in seconds.
  • Run your application as normal.
  • Close your application.
  • Examine the memory leaks that Memory Validator finds in your software.
  • Easy to read data displays show you all the errors in the order they occurred. The displays can be filtered to show you only the information that you want to work with.

Drill down to the data in the displays by expanding an entry in the display to display information about the memory leak: What type of object was allocated, what size, where (address, filename, line number<), thread id, allocation timestamp, lifetime and sequence id. Also displayed is a comprehensive callstack showing each class and method name, filename and line number. Each entry can be expanded to display the source code for that line.


Memory Validator can be configured to collect all data or just the data you need. Powerful filters for collecting data and for displaying collected data give you maximum flexibility and control over how much CPU time is spent and how much memory is used collecting data allowing you to choose how much effort is put into a given task.


Memory Validator provides two APIs for controlling Memory Validator from your application. One API is for direct control of Memory Validator, the other API is for using Memory Validator with services for the case when Memory Validator cannot inject into a service because of Windows NT security privileges preventing the injection (typically for services running at Administrator or system level).


The default options of Memory Validator concentrate on C and C++ memory leaks. It is easy to add many other memory types (GlobalAlloc, LocalAlloc, Heap32, etc…) and handle tracking to the list of data items monitored.

Additional capabilities include uninitialised data tracking, detection of use of deleted C++ objects, memory corruption detection, broken message map usage.

HTML and XML export

Memory Validator provides powerful HTML and XML reporting capabilities, allowing you to produce overnight leak reports if you use Memory Validator as part of regression testing strategy.

Built to handle large data volumes

Unlike some of our competitors that struggle to handle even one million allocations, some of our customers are processing billions of allocations with Memory Validator.


Memory Validator works with compilers from:

VendorLanguageCompiler / IDE
MicrosoftC++, C, Visual Basic 6, C#, VB.Net, J#, F#, .Net, .Net CoreVisual Studio
IntelC++, C, FortranIntel Performance Compiler, Intel Fortran
EmbarcaderoC++, C, DelphiC++ Builder, Delphi, Rad Studio
MinGWC++, Cg++ / gcc
LLVMC++, CClang
QtC++, CQtCreator
MetrowerksC++, CCode Warrior
Salford SoftwareFortran 95Fortran 95

We support many versions of Visual Studio: Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010, 2008, 2005, 2003, 2002 and Visual Studio 6 are supported.

All 32 bit and 64 bit (x64) Windows operating systems are supported, from Windows 11 to Windows XP.

For more details, please consult the compatibility feature list.

.Net and .Net Core

If you’re using .Net and/or .Net Core, Memory Validator supports these technologies.

If you’re also using native code with your .Net applications, we’ve also got that covered, mixed mode applications are supported.

Applications, services, web servers

Memory Validator works with applications, services and IIS/Web Development Server, both native and mixed-mode .Net.

Regression test support

As well as the traditional interactive memory leak debugging role that Memory Validator performs, Memory Validator can be used to compare two recorded sessions to show the difference between the sessions. This allows you to determine if changes to your code have resulted in improvements (less memory leaks, less errors) or regressions (more memory leaks, more errors).

Command Line

Memory Validator also allows you to automate memory leak testing by launching Memory Validator from the command line.

A full range of command line options allow you to perform unattended runs of Memory Validator, complete with HTML export and XML export, to facilitate regression testing as part of your overnight builds.

Example 1 Launch a program with a specific startup directory, using two arguments, and save the session without showing the Memory Validator interface.

memoryValidator.exe -hideUI
                    -program c:\myProgram.exe
                    -directory c:\testbed
                    -arg " -macro c:\macros\testMacro1.vba"
                    -arg "secondArg"
                    -saveSession c:\results\testMacro1.mvm

Example 2 Launch a program with a specific startup directory, using two arguments, save the session, compare the recorded session with a known baseline and export the comparison results to HTML and XML. The Memory Validator interface is not shown.

memoryValidator.exe -hideUI
                    -program c:\myProgram.exe
                    -directory c:\testbed
                    -arg " -macro c:\macros\testMacro1.vba"
                    -arg "secondArg"
                    -saveSession c:\results\testMacro1.mvm
                    -baseline c:\baselines\testMacroBaseline.mvm
                    -sessionCompareHTML c:\regression\testMacro1.html
                    -sessionCompareXML c:\regression\testMacro1.xml

Software Updates

We update our software tools on a regular basis – on average about 26 updates per year. Updates are optional, you only need to download the most recent update to be up-to-date.

You can set up automatic software updates using the credentials we supply to you when you purchase. Automatic software updates can be setup to check daily, weekly, monthly or never.

Fully functional, free for 30 days