Follow softwareverify on Twitter
0 items - $0.00

The fastest way to monitor billions of memory allocations

C++ Memory Validator

C++ Memory Validator
C++ Memory Validator CD Picture

Single user, x86:$299 x64:$449

Eval x86 Eval x64
Buy C++ Memory Validator x86 Buy C++ Memory Validator x64

Read what our customers say...
C++ Memory Validator is also part of
C++ Developer Suite
C++ QA Suite
C++ Support Suite

Memory Validator - Feature List

Memory Validator has many useful features not found in other memory usage analysis tools.

Leak Detection

  • Detect memory leaks
  • Detect resource leaks
  • Detect incorrect memory deallocation
  • Detect multiple memory deallocation
  • Detect heap overruns
  • Detect heap underruns
  • Detect heap corruption
  • Detect stack overruns
  • Detect stack underruns
  • Detect memory re-use (the re-use of deleted objects)
  • Detect uninitialised data in C++ objects
  • Detect COM leaks
  • Detect BSTR leaks
  • Support reference counting for user managed heaps
  • Detect memory leaks from user managed heaps
  • Detect potentially unused memory
  • Detect potentially leaked memory
  • Detect handle leaks
  • Show memory and handles on a per-thread basis, or for any and all threads
  • Detect "Release only" crashes caused by using the wrong function signature in MFC message maps
  • Detect memory leaks from custom memory allocators in 3rd party DLLs

Data Views

  • Memory allocation view. View information on memory leaks.
  • Memory hotspot view. View information on where the most memory is being allocated
  • Memory analysis view. View information on all allocations and their related objects, not just leaks
  • Virtual memory page view. View information on how much of each virtual memory page is used
  • Virtual memory graphical view. Graphical view of page usage
  • Allocated objects analysis view. What types of objects are in use, their size and how many
  • Allocation coverage analysis. Have you tested all your memory allocation and deallocation sites?
  • Diagnostic messages. For detecting unforseen errors in the instrumentation. If things are not behaving as you expect, the answer may be here

Data searches

  • Allocation/object query by address, size, type
  • Allocation/object search
  • Object query
  • Address query
  • Function query
  • Related memory / handles query
  • Cross-thread allocation detector

Data Management and Filtering

  • Filtering. Comprehensive filtering to allow you to display just the data you want to display
  • Filter memory and handles by thread id
  • Watermarks. Used for isolating sections of the data
  • Bookmarks. Never forget all those places of interest in the current session

Regression Test Support

  • Session to session comparison
  • Command line execution
  • Support for regression testing
  • Data export (HTML, XML)

Miscellaneous

  • Support for collecting 'uncollectable' call stacks. Memory Validator now provides an advanced stack walk that can walk callstacks that have no stack frame information. This allows you to collect callstacks in situations where other tools fail
  • Allocator alias support. Used if your company uses a macro 'MY_NEW' instead of 'new', for example
  • Support for software with no debugging information, via exported symbols, def files, ordinals, map files, and browser (bsc) files
  • Very configurable, almost all options are configurable by the user. Includes an option to reset to the default settings

Application Integrity

  • Speculative leak detect. Looks for potential leaks when objects are deallocated
  • Check for uninitialised data. If your application appears to be behaving randomly it may be due to uninitialised data. Check for it with this feature
  • Heap integrity check. If you think your heap has been damaged, you can check it with this feature
  • Background heap integrity check. If you don't want to explicitly check your heap's integrity, you can have it checked on a continuous basis, in the background, at a priority level to suit you

Startup

  • Start by injecting into running process or running NT service
  • Start by launching a process and injecting into that process at startup
  • Start by waiting for a process to start and injecting into that process at startup
  • Link to API binary to gain access to the instrumentation API
  • Link to service binary to use Memory Validator with your NT Service

Instrumentation

  • Instrumentation API to allow customised data collection for advanced users
  • Instrumentation is fast, a few seconds, not tens of minutes
  • Runs at nearly full speed of non-instrumented application, not 2 or 10 times slower
  • Instrumentation can be customized at the DLL level or down to the function level, as you require. Completely flexible as to which functions you choose to instrument
  • Instrumentation DLL can be extended by writing your own Dlls which the instrumentation DLL can load (configurable) to call functions written by you. Such functions could perform statistical analysis of object allocation etc

No need to rebuild

  • No need to rebuild or relink your application(*)
  • Minimal compile and link to allow use of instrumentation API
  • Minimal compile and link to use Memory Validator with NT services if you want to track the whole service. If you are happy to inject into the service once it is running, you can do that instead of linking

(*) Some applications using the static CRT may need a one time change to the dynamic CRT. Most applications use the dynamic CRT. If you are not using the static CRT, then no change is required.

Compatibility

  • Works with AutoCad®, AutoCad ObjectARX®, SolidWorks® and other applications that support addins that traditionally do not work well with other Memory Debuggers
  • Works with the following compilers:
    • Microsoft Visual Studio 6.0, 7.0, 7.1, 8.0, 9.0 10.0 11.0 12.0 .net (2002, 2003, 2005, 2008, 2010 2012, 2013)
    • Microsoft Visual C++
    • Microsoft Visual Basic 6
    • Intel Performance C++ compiler
    • Borland C++ Builder 5.0, 6.0
    • Borland free command line tools C++ compiler
    • MinGW gcc/g++ C/C++ compiler
    • QtCreator
    • Metrowerks CodeWarrior for Windows 8.0
    • Borland Delphi 6.0
    • Salford Software FORTRAN 95
    • Cherrystone Software Labs ESA (Extremely Scalable Allocator)
    • Contact us if your compiler is not listed

Operating Systems

  • Microsoft Windows 8 64
  • Microsoft Windows 7 64
  • Microsoft Windows Vista 64
  • Microsoft Windows XP 64
  • Microsoft Windows 8
  • Microsoft Windows 7
  • Microsoft Windows Vista
  • Microsoft Windows Server 2012
  • Microsoft Windows Server 2008
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Microsoft Windows 2000
  • Microsoft Windows NT 4

Go to Top ^^