0 items - $0.00
Follow softwareverify on Twitter

 

C++ Memory Validator x64 / x86 Change History

All customers requested features are shown in blue. We have added this colour coding so that you can see that we really do listen to our customers. If you want a feature and another vendor has let you down ask us. There are features listed below that have been requested in competing products, but which the vendor could not see the purpose.

Version 7.17
Version 7.17 includes the following functionality:

  • Updated DLLs found in System 32 dialog with a choice of actions for how to treat the DLLs.
  • Renamed Configure menu to Settings.
  • Added option to re-run the Startup Settings Wizard to the Settings menu.
  • Added User Interface Mode setup to the Startup Settings Wizard.

Version 7.16
Version 7.16 includes the following functionality:

  • New release that does not store any Software Verify DLLs in Windows system directories. This should reduce the likelihood that our software tools are mistaken for viruses/trojans.
  • Updated NT Service API and related documentation.

Version 7.15
Version 7.15 includes the following functionality:

  • Bug fix for incorrect new/free mismatch report.
  • Bug fix for C/C++ source code parsing.
  • Bug fix for dependency checking.

Version 7.14
Version 7.14 includes the following functionality:

  • Display bug fixes for High DPI (4K plus) screens.
  • Bug fix for filters.
  • Bug fix for crash with callstack leaf filters.

Version 7.13
Version 7.13 includes the following functionality:

  • Change of behaviour for filtering on Memory and Objects tabs. Filters can't be inverted. But whole filter groups can be configured to show or hide data. This is much more powerful filtering than the previous implementation.
  • Bug fix for potential crash during shutdown.
  • Bug fix for memory leak.
  • Performance improvement.

Version 7.12
Version 7.12 includes the following functionality:

  • Maintenance release

Version 7.11
Version 7.11 includes the following functionality:

  • Bug fix for potential (very rare) crash when trying to inject into another process (or wait for application).

Version 7.10
Version 7.10 includes the following functionality:

  • Performance improvement for MAP file reading.

Version 7.09
Version 7.09 includes the following functionality:

  • Multi-threading bug fix for process monitor.
  • Bug fix for handling of deallocation/reallocation of NULL pointers/handles.

Version 7.08
Version 7.08 includes the following functionality:

  • Bug fix for crash with Filters context menu.
  • Bug fix for global hook DLL detection.

Version 7.07
Version 7.07 includes the following functionality:

  • Change to the options controlling when debug information is missing dialogs are show to you. You now have more control over when this happens.
  • Bug fix for PE format inspection DLL to prevent crashes when inspecting a DLL with an unusual data layout.
  • Improvements to STABS debug information handling.
  • Improvements to COFF debug information handling.

Version 7.06
Version 7.06 includes the following functionality:

  • Improved error messages for software installer in the unlikely event the software updater fails for some reason.
  • Bug fix for STABS symbol demangling
  • Updated diagnostic messages.

Version 7.05
Version 7.05 includes the following functionality:

  • Additional warning about /DEBUG:FASTLINK built executables at start of run (after hooking) rather than at end of run.

Version 7.04
Version 7.04 includes the following functionality:

  • Support for Visual Studio 2017. Previous versions had implicit support for VS 2017, now we provide explicit support for VS 2017.
  • Bug fix for DLL not found message to handle the case where the DLL is on the PATH being set by the environement variable set from the launch dialog.
  • Symbol cache dialogs updated to add option to also scan networked drives for files.
  • Additional menu option on the Configure menu, allows you to easily delete cache files.
  • Added option on cache file deletion dialog to include networked drives.
  • Re-implemented filters. This improves filter robustness and also fixes some bugs in the filter manager GUI.
  • Bug fix for trying to launch NameWithA Space.exe launching NameWithA.exe instead. Both .exes need to be in same dir to see this bug.

Version 7.03
Version 7.03 includes the following functionality:

  • Performance improvement during launching. Replaced brute force assembly check with correct checking of manifest contents and WinSxS assemblies. This is faster and more reliable than previous implementation (which on some machines was very slow).

Version 7.02
Version 7.02 includes the following functionality:

  • Bug fix for stack walker. Very rare bug for anyone to encounter.

Version 7.01
Version 7.01 includes the following functionality:

  • Bug fix for potential crash on some systems due to DLL loading order.
  • Bug fix for DLL dependency checker - now includes scan of WinSxS to handle manifests.
  • Updated documentation, now includes correct error codes, all 66 of them.

Version 7.00
Version 7.00 includes the following functionality:

  • Addition of Instrumentation Logging. Updated settings dialog and new dialog on Tools menu. This allows you identify when filters prevent something from being instrumented.
  • Improved UX in a few areas.
  • Improvement to Launch Dialog. Applications with missing DLL dependencies are now checked for. If a missing dependency is found you are warned about the failure and given the option to cancel the launch or continue trying to launch.

Version 6.99
Version 6.99 includes the following functionality:

  • Minor change to File Locations dialog to draw attention to PDB file locations.
  • Change to DbgHelp failure to find debug information reporting to include PDB file location information - this will draw your attention to the fact you may need to specify this information, for example if you keep your PDB files in a separate directory to the your EXE/DLLs.

Version 6.98
Version 6.98 includes the following functionality:

  • Bug fix for flicker on the Memory Coverage display.
  • Bug fix for crash when deleting watermarks.
  • Bug fix for possible crash during shutdown of application being monitored.
  • Bug fix for failure to load symbols display - more useful symbol search path information is now displayed.

Version 6.97
Version 6.97 includes the following functionality:

  • Bug fix injecting into 32 bit process launched from a batch file on a 64 bit operating system.

Version 6.96
Version 6.96 includes the following functionality:

  • User experience improvement for debug information not found handling.
  • User experience improvement for error handling try to attach to 64 bit application from batch file.
  • Source code MFC and Microsoft C runtime will now be automatically found based upon the Symbol Lookup Visual Studio selection.
  • Bug fix for monitoring programs launched from batch files if the file path contains spaces.
  • Bug fix for symbol server dialog.
  • Bug fix for grid controls containing check boxes.
  • Bug fix for symbol handling for DLLs in write protected directories.
  • Bug fix for floating licensing.
  • Bug fix for error recovery when attaching to program launched from batch file fails.
  • Bug fix for delay loaded hooking of some USER32.DLL functions.

Version 6.95
Version 6.95 includes the following functionality:

  • Bug fix for out of range crash accessing an array.
  • Minor UX fixes and typography fixes.
  • Bug fix for software updates.
  • Additional confirmation dialog for Reset software update credentials.
  • First release after checking and fixing Visual Studio projects using Visual Studio Project Fixer.

Version 6.94
Version 6.94 includes the following functionality:

  • Bug fix for hooking function epilogues.

Version 6.93
Version 6.93 includes the following functionality:

  • Bug fix - deleting temporary files after use.
  • Addition of ability to specify the download location for software updates - allowing system administrators to lock down temporary file execution but allow software updates to execute.

Version 6.92
Version 6.92 includes the following functionality:

  • New first run configuration dialog to replace the two dialogs shown for environment vars and compiler/IDE chooser.
  • Improved error handling in startup injection code.
  • Prevention of double injection when try to launch executable statically linked with Validator library.
  • Bug fix for symbol loading. Prevent loading of mismatched symbols in special circumstances. This can prevent unexplained crashes causes by misleading information from incorrect symbol data.

Version 6.91
Version 6.91 includes the following functionality:

  • Change to missing debugging/symbol information reporting.
  • Change to COFF symbol handling. If line numbers are missing, the symbol information is regarded as missing. This will improve the use case for MingW compilers (Qt, Dev C++ etc).

Version 6.90
Version 6.90 includes the following functionality:

  • Data comms modification for handling comms once ExitProcess() is called.
  • Change to how Version Information is handled.

Version 6.89
Version 6.89 includes the following functionality:

  • Various UX improvements when editing filenames and directories.
  • Memory tracking for _tempnam, _tempnam_dbg, _wtempnam, _wtempnam_dbg.

Version 6.88
Version 6.88 includes the following functionality:

  • Instrumentation improvements.
  • Multi-threading security improvements.

Version 6.87
Version 6.87 includes the following functionality:

  • Improved launch instrumentation. Handling race conditions in CreateProcess() with SUSPENDED flag.

Version 6.86
Version 6.86 includes the following functionality:

  • Updated software update error handling.
  • Improved code instrumentation.

Version 6.85
Version 6.85 includes the following functionality:

  • Bug fix for OpenGL.

Version 6.84
Version 6.84 includes the following functionality:

  • Bug fix for symbol cache - performance improvement, robustness/integrity improvement.
  • Bug fix for for function hooking - improved handling for optimized binaries.

Version 6.83
Version 6.83 includes the following functionality:

  • Bug fix for multi-threading error in symbol handling for V6.82.

Version 6.82
Version 6.82 includes the following functionality:

  • Bug fix for CreateCaret/DestroyCaret.
  • Bug fix for GlobalFree on Windows 10.
  • Addition of two options to the Software Updates menu (purchased version only) for resetting and setting user credentials. This allows you to easily recover from entering bad information by accident.

Version 6.81
Version 6.81 includes the following functionality:

  • Bug fix for FALSE positive memory leak when memory freed by a subsequent call to OpenClipboard() after settings memory on clipboard with SetClipboardData.
  • Change to how unqiue symbol data is identified when sending from stub to GUI.

Version 6.80
Version 6.80 includes the following functionality:

  • Error handling improvements to startup launch code injector.
  • Prevent data race during shutdown when run from the command line with -hideUI.

Version 6.79
Version 6.79 includes the following functionality:

  • Some improvements to multi-threaded data integrity.

Version 6.78
Version 6.78 includes the following functionality:

  • Bug fix possible crash when hooking executables built with Visual Studio 2015 - to account for changed memory protection values compared to earlier Visual Studio versions.
  • Bug fix possible crash when handling reading modern format PDB files with older (incompatible) versions of DbgHelp.dll if the wrong version of DbgHelp.dll is chosen (or loaded by the OS loader).
  • Debug information created with Visual Studio's /DEBUG:FASTLINK is now detected and a warning displayed on the Diagnostic tab indicarting that /DEBUG needs to be used to create usable debug information.
  • Bug fix for symbol handling (copying DbgHelp.dll so that it can be found).
  • Improved HTML export formatting.
  • Improved handling of deallocation attempts for pointers in uninitialised memory and deallocated memory etc.

Version 6.77
Version 6.77 includes the following functionality:

  • Bug fix for FALSE positive memory leak report for StringFromIID, StringFromCLSID, ReadFmtUserTypeStg, CoQueryProxyBlanket, CoQueryClientBlanket, CoQueryAuthenticationServices, SHStrDupA, SHStrDupW, StrRetToStrA, StrRetToStrW.

Version 6.76
Version 6.76 includes the following functionality:

  • Bug fix for floating licence helper DLL loading being denied due to UI global hook settings.
  • UX improvement for the launch dialog and launch wizard. File and directory specifications that don't exist will be shown in red.

Version 6.75
Version 6.75 includes the following functionality:

  • Instrumentation progress speedup.
  • Bug fix for FALSE positive incorrect deallocation warning for some memory deallocations.

Version 6.74
Version 6.74 includes the following functionality:

  • Static analysis bug fix update.

Version 6.73
Version 6.73 includes the following functionality:

  • Addition of support for EventLog monitoring to identify why some applications fail to start properly. This is available if you are using Vista or more recent operating systems.

Version 6.72
Version 6.72 includes the following functionality:

  • Bug fix for accessing COFF and STABS format debug information.
  • Inject dialog bug fix.
  • Bug fix for thread naming.

Version 6.71
Version 6.71 includes the following functionality:

  • Bug fix for handling unable to write to temporary files when fetching symbols from symbol servers and symbol files.
  • Bug fix for handling faulty .svlord files resulting in empty function names. Now you get something useful even if it's not what should be in the .svlord file. (Better error handling).
  • Bug fix for some handle leaks.
  • Bug fix for memory statistics relating to failed memory allocations.
  • Bug fix for reporting memory leaks for failed memory reallocations.
  • Better data reporting for failed memory allocations.
  • Bug fix for CryptMemReAlloc() and CryptMemFree() handling.
  • Performance improvement for high DPI scaling handling.
  • Data display improvement for Memory and Analysis tabs.

Version 6.70
Version 6.70 includes the following functionality:

  • Addition of two new sort types on the Memory tab. Sort by Num Allocations at callstack. Sort by Total Size at a callstack.
  • Performance improvement for processing data from stub in GUI. For many non-C++ and non-HeapAlloc() allocations, processing of this data has been speeded up enormously. For some applications that allocate a lot of memory, performance improvement is easily 10x and nearly 100x in some cases.
  • Performance improvement for processing inter-process comms. Removal of thread contention. Reduction of thread contention.
  • Bug fix for some rare deadlock like conditions (not caused ciritcal sections, but a combination of other events). These are rare and tend to occur when closing one session and launching a new test session.
  • Bug fix for some mangled symbols in callstacks that should be elided.

Version 6.69
Version 6.69 includes the following functionality:

  • Bug fix for double click behaviour on various dialogs.
  • Bug fix for loading/saving of settings data.
  • Bug fix for session manager.

Version 6.68
Version 6.68 includes the following functionality:

  • Change to shared memory transport. Now more considerate with memory usage. Also has improved out of memory fail-over handling.
  • Bug fix for two data race memory corruptions (that could cause crashes) in the GUI. This is a recommended download.

Version 6.67
Version 6.67 includes the following functionality:

  • Change to UI global hook defeat mechanism so that Winsock is not interfered with.
  • Enhanced floating licence error status reporting and logging to handle broken Winsock installations.
  • UX changes to prevent multi-relaunches of program due to finger fumble double click.

Version 6.66
Version 6.66 includes the following functionality:

  • Bug fix for disassembler DLL update.
  • Internal: Addition of auto tester for stress testing.

Version 6.65
Version 6.65 includes the following functionality:

  • Bug fix for callstack root filter.
  • Bug fix for crash with local filters.
  • Bug fix for crash with global filters.

Version 6.64
Version 6.64 includes the following functionality:

  • Support for Intel Thread Blocks memory allocations being reported properly (no FALSE error reports).
  • Bug fix for crash with session filters.

Version 6.63
Version 6.63 includes the following functionality:

  • Updated disassembler. This will give improved function hooking.
  • Initial support for high DPI monitor compatibility. Font sizes are calculated, not hard coded.

Version 6.62
Version 6.62 includes the following functionality:

  • Bug fix for Software Updates Installer.

Version 6.61
Version 6.61 includes the following functionality:

  • Bug fix for C++ Builder callstacks and static/dynamic hooking.

Version 6.60
Version 6.60 includes the following functionality:

  • Bug fix for hooking of C++ Builder and Delphi static linking.
  • Bug fix for potentiall deadlock in symbol handling code.

Version 6.59
Version 6.59 includes the following functionality:

  • Addition of support for _NT_SYMBOL_PATH, _NT_ALT_SYMBOL_PATH, _NT_ALTERNATE_SYMBOL_PATH, _NT_SYMCACHE_PATH. See Symbol Server settings dialog for configuration options.
  • Bug fix for setting environment values in services and applications.
  • Bug fix for failing to correctly restore the size and position of the main window when restarting the software.

Version 6.58
Version 6.58 includes the following functionality:

  • Bug fix for floating licencing.

Version 6.57
Version 6.57 includes the following functionality:

  • Bug fix for incorrectly cached data when DLL unloaded then loaded.
  • Maintenance release. Misc bug fixes.

Version 6.56
Version 6.56 includes the following functionality:

  • Addition of command line option -showErrorsWithMessageBox that reports errors on stdout.
  • Bug fix for incorrect handle count on the Running Totals dialog.
  • Bug fix for Hotspots display for Handles subtab.
  • Bug fixes for IIS Tools menu
  • Minor bug fixes, maintenance release.

Version 6.55
Version 6.55 includes the following functionality:

  • Bug fix for FALSE positive memory leak with Visual Studio 2015 when symbol servers enabled in C++ Memory Validator.
  • Filtering colour changes to improve user experience.

Version 6.54
Version 6.54 includes the following functionality:

  • Bug fix for FALSE positive memory leaks with Visual Studio 2015 Update 1.
  • Bug fixes for Objects statistics.

Version 6.53
Version 6.53 includes the following functionality:

  • Addition of support for Marmalade game SDK.
  • Bug fix for inject dialog and inject wizard.
  • Bug fix for launch wizard.

Version 6.52
Version 6.52 includes the following functionality:

  • Bug fix for running C++ Memory Validator from a service.
  • Bug fix for incorrectly classifying Windows patch DLLs.
  • Improvement to symbol handling.
  • Improvement to MAP file handling.

Version 6.51
Version 6.51 includes the following functionality:

  • Minor change to static LIBC hooking.

Version 6.50
Version 6.50 includes the following functionality:

  • Addition of ability to specify a different application to monitor than the application that is being launched. This allows you to monitor applications launched by a different application.
  • Addition of -programToMonitor and -programToMonitorLaunchCount command line arguments.
  • Bug fix for TDS Symbol Reader when Validator DLL is not loaded from Validator install directory.
  • Change to hooking of statically linked Delphi memory allocation functions - we've made the matching of function names a bit more lax to accomodate a recently found alternative style of symbol representation in the TDS sysmbols.

Version 6.49
Version 6.49 includes the following functionality:

  • Bug fix for serialization - you can't load a session that is already loaded in the session manager.

Version 6.48
Version 6.48 includes the following functionality:

  • Bug fix for .Net symbol handling when .Net tries to setup profiler for multiple profiler interfaces.
  • Bug fix for handle leak. Leak discovered using C++ Memory Validator.
  • Bug fix for possible crash in symbol caching code.
  • Bug fix for crash with SDL2.DLL (Simple Direct Media Layer library).

Version 6.47
Version 6.47 includes the following functionality:

  • Copy from grid now uses TAB to separate columns rather than SPACE. This is for improved copy/paste with Excel.
  • Loading a session will now detect when attempts are made sessions saved with an incompatible product (example: loading 64 bit session into 32 bit tool). Valid for all sessions from this version onwards.
  • Memory coverage now detects files that are part of Microsoft Visual Studio CRT and excludes them from memory coverage.
  • Bug fix for potential crash with manifest handling.

Version 6.46
Version 6.46 includes the following functionality:

  • New configuration of DbgHelp DLLs for VS 2013 and VS 2015 to provide better performance.
  • Support for the alias CreateDialog/A/W in memory coverage statistics.

Version 6.45
Version 6.45 includes the following functionality:

  • Bug fix for error message.

Version 6.44
Version 6.44 includes the following functionality:

  • Bug fix for settings very large environment variable values.
  • Bug fix for bug during undecorate.
  • Bug fix for symbol handling.

Version 6.43
Version 6.43 includes the following functionality:

  • Bug fix for process monitoring when target is elevated and Validator is non-elevated.
  • Additional user warning when momitored process is elevated and Validator is non-elevated.
  • Bug fix for a special case of quoted command line arguments.
  • Fix for very slow behaviour on some machine due to disk cache.
  • Bug fix for comctl32 related crash on Windows 7.
  • Addition of -monitorAService command line argument.

Version 6.42
Version 6.42 includes the following functionality:

  • Maintenance update.

Version 6.41
Version 6.41 includes the following functionality:

  • Support for Visual Studio 2015
  • Bug fix for command line options processing.

Version 6.40
Version 6.40 includes the following functionality:

  • New implementation for launching and injecting into executables. This method removes some technical limitations, opening the way for future improvements to the software.
  • Bug fix for Inject dialog incorrectly listing 64 bit executables to inject into.
  • API change: If you are using the Memory Validator API you need to call startProfiler(); to start Memory Validator.

Version 6.39
Version 6.39 includes the following functionality:

  • Improvements to Memory Coverage.
  • Addition of the relations query sub menu to the context menu on the Memory tab. All the relations queries from the Memory Analysis window can now be done from the Memory window.
  • Bug fix for crash in lower Memory Analysis window.

Version 6.38
Version 6.38 includes the following functionality:

  • Change to HeapDestroy() behaviour. You can now choose between marking all non-deallocated memory in the heap as collected or as leaked. This allows for two different use cases: High performance heap destruction without individual HeapFree() calls, and also for use a memory allocator backing store where you care about missing HeapFree() calls. See the Heap section of the Settings dialog.
  • User experience improvements to Memory Coverage - now has colour coding similar to C++ Coverage Validator.
  • Bug fix for Memory Coverage.
  • Bug fix for UI Defeat Global hook.

Version 6.37
Version 6.37 includes the following functionality:

  • Change to how launch history is stored and managed. Principle reason for this is to fix a long standing, hard to reproduce bug that mixes up data from one launch with another launch.
  • Static analysis improvements.
  • Improvements to exception logging.
  • Improved UI defeat global hook implementation.

Version 6.36
Version 6.36 includes the following functionality:

  • Bug fix for some FALSE positive memory leaks.
  • Bug fix for potential memory leak caused by race condition.
  • Bug fix for some thread local storage FALSE positive memory leaks.
  • Bug fix for high speed shared memory data transport race condition during shutdown.
  • Bug fix for symbol demangling bug with Microsoft's UnDecorateSymbolName which can crash with certain input.
  • UX Change in behaviour for the Get Symbols... action on the Symbol Servers settings page. Now meets user expectations.

Version 6.35
Version 6.35 includes the following functionality:

  • Improved callstack walking for static CRT hooking.
  • Addition of Same Function relations test on Analysis tab.
  • Bug fix for symbol demangling for MingW.

Version 6.34
Version 6.34 includes the following functionality:

  • Bug fix for deleted "this" pointer detection.

Version 6.33
Version 6.33 includes the following functionality:

  • Improved launch handling of mixed mode .Net modules.
  • Improved Windows Firewall handling.

Version 6.32
Version 6.32 includes the following functionality:

  • Better support for reading Embarcadero/Borland TDS files. (C++Builder / Delphi)

Version 6.31
Version 6.31 includes the following functionality:

  • Static analysis improvements.
  • Minor bug fixes.

Version 6.30
Version 6.30 includes the following functionality:

  • Minor UX improvements.
  • Improvements to display of MBCS encoded (non-ANSI) files with no Byte Order Mark.

Version 6.29
Version 6.29 includes the following functionality:

  • Better error codes for failing inject.
  • Bug fix for possible inject failure when run from the command line.

Version 6.28
Version 6.28 includes the following functionality:

  • Support for non-western character sets in source code display - examples include Greek, Korean, Chinese, Japanese, Albanian, Arabic, Hebre, Hindia, Armenian, Russian.

Version 6.27
Version 6.27 includes the following functionality:

  • Bug fix for floating licensing.

Version 6.26
Version 6.26 includes the following functionality:

  • Bug fix for Windows 7 crash when hooking.

Version 6.25
Version 6.25 includes the following functionality:

  • New DLL load detection support for Windows 8. Previously some DLLs loaded by COM were not being monitored.
  • Bug fix for PE file inspector.
  • Static analysis bug fixes.

Version 6.24
Version 6.24 includes the following functionality:

  • Minor UX improvements.
  • Exception safety for disassembler.

Version 6.23
Version 6.23 includes the following functionality:

  • New VS2010 Installer handling. No user interaction required - no confusion over what to choose.
  • Improved launch procedure for when trying to launch a program that needs administrator privileges when Validator not running as administrator.
  • Improved Diagnostic tab - a filter is now present so that you can easily focus on just the messages you are interested in.
  • Improved the reporting of non-PDB symbols (TDS, STABS, COFF) on Diagnostic and Debug Information Dialog.

Version 6.22
Version 6.22 includes the following functionality:

  • Improved choose a Visual Studio dialog. Better error handling on machines with no Visual Studio installed.
  • Resizable launch dialog.
  • Resizable wait for process dialog.
  • Bug fixes and UX improvements for environment variables dialog.
  • Automatic provision of symbols for Microsoft DLLs linked with Ordinals when no PDB symbols availabile.
  • Automatic display of symbols missing information dialog the first time (for any session) when a callstack is displayed that has missing symbol information.
  • Bug fix for potential crash with copy to clipboard.
  • UX changes for In-Place Leak Detect.
  • Improvement to Inject into Process dialog.

Version 6.21
Version 6.21 includes the following functionality:

  • New build with Visual Studio 2010. Support for Operating Systems from Windows XP onwards. Windows NT4 and Windows 2000 are no longer supported, except with a special build..
  • Additional security checks.
  • Improved performance with some VirtualQuery() calls.
  • Bug fix for slow hooking on some systems when hooking CryptoAPI functions.
  • Bug fix for user defined reference counts.

Version 6.20
Version 6.20 includes the following functionality:

  • Support for Next Generation Crypto API.
  • Addition of tooltips to the icons on the Memory and Analysis views.
  • Bug fix for Hide All menu option on the Data Views menu.
  • Bug fix for restoring Data Views.

Version 6.19
Version 6.19 includes the following functionality:

  • Support for Crypt32 crypto API.
  • Bug fix for registry handling.
  • Bug fix for launch dialog.

Version 6.18
Version 6.18 includes the following functionality:

  • New menu, "Data Views" allowing you to show, hide or reset all tabbed views.
  • Ability to hide any data view to simplify the screen layout.
  • Data view visibility preserved between sessions.
  • Addition of command line argument -doNotInteractWithUser. Use this to prevent the stub or the GUI from displaying error dialogs during runs. This is useful when setting up automated testing on a server.
  • New hooks for tracking security access tokens. OpenThreadToken(), CreateRestrictedToken(), DuplicateToken(), DuplicateTokenEx().

Version 6.17
Version 6.17 includes the following functionality:

  • Bug fix for software update installer.

Version 6.16
Version 6.16 includes the following functionality:

  • The display of the callstack instruction address is now optional, with the default being not shown.
  • Bug fix for global filter dialog.
  • Bug fix for reading/writing values to/from the registry.

Version 6.15
Version 6.15 includes the following functionality:

  • Bug fix for timeline.
  • Addition of Totals line on Sizes tab.
  • Addition of position markers for Seq 1, Add Seq, Del Seq, Cur Seq on Objects and Sizes tab.
  • Addition of Lifetime column graph on Objects and Sizes tab.

Version 6.14
Version 6.14 includes the following functionality:

  • Support for Visual Studio 2014 CTP

Version 6.13
Version 6.13 includes the following functionality:

  • Registry reading error handling update.
  • Update to Software Updates install behaviour.
  • Settings serialization bug fix.
  • Bug fix for startup race condition caused by 3rd party Windows Hook.

Version 6.12
Version 6.12 includes the following functionality:

  • Bug fix for disassembler code.
  • Updates to Datatype Definition editing and Show Data At... handling.
  • Change to Browse for Folder behaviour.

Version 6.11
Version 6.11 includes the following functionality:

  • UX and UI changes for define datatypes, define enumerations and scan for datatypes user interfaces. Items moved from Configure menu to Settings dialog.
  • Updated installer, now includes error logging for the odd occasion when installs go wrong.
  • Misc other updates and bug fixes.

Version 6.10
Version 6.10 includes the following functionality:

  • Change to callstack walking method - fixes rare incorrect callstacks.
  • Bug fix for broken window resizing in two dialogs.
  • Bug fix for possible crash when reallocating memory (IIS Tools menu and Inject dialog).
  • A few minor UX improvements.
  • This is a recommended download.

Version 6.09
Version 6.09 includes the following functionality:

  • Bug fix for incorrect memory corruption detection when deleting/freeing memory.
  • Bug fix for undcoumented return value from GetWindowTextW()
  • Fix application specific file storage issues when run without admin privileges on Vista/7/8.
  • Bug fix for incorrect memory reallocation in user interface.
  • Bug fix for incorrect memory reallocation in svlService.
  • This is a recommended download.

Version 6.08
Version 6.08 includes the following functionality:

  • Can now detect and warn about incompatibility with Microsoft Application Verifier.
  • Improved error reporting for hooks.
  • Misc bug fixes for errors found in testing.

Version 6.07
Version 6.07 includes the following functionality:

  • New version that does not require administrator privileges to run. No User Account Control dialogs!
  • Improved function hooker.
  • Improved delay load hooker.
  • Improved failure reporting.
  • Bug fix for rare crash in high speed comms linear heap.

Version 6.06
Version 6.06 includes the following functionality:

  • Bug fix for profiling mixed mode native/.Net processes.
  • Bug fix for session comparison.
  • Bug fix for memory leak.
  • Bug fix for API linkage problems.

Version 6.05
Version 6.05 includes the following functionality:

  • Maintenance release.
  • Improved PE File reader.
  • Bug fix for attaching to .Net processes.

Version 6.04
Version 6.04 includes the following functionality:

  • Symbol handling bug fix.
  • Support for _get_current_locale(), _create_locale(), _free_locale(), __get_current_locale(), __create_locale(), __free_locale()

Version 6.03
Version 6.03 includes the following functionality:

  • More filter work.
  • Watermarks improvements.
  • Instrumentation bug fix.
  • Minor UX improvements. Browse For Folder dialog.

Version 6.02
Version 6.02 includes the following functionality:

  • UX improvements and bug fixes for filter manager.
  • Bug fixes group by callstack display.
  • Bug fixes for Objects and Sizes displays.
  • Updated DbgHelp.dll handling for working with services.
  • Miscellaneous UX improvements.
  • Miscellaneous bug fixes.
  • Addition of command line argument -launchAppHide
  • Addition of command line argument -launchAppShow
  • Addition of command line argument -launchAppShowMaximized
  • Addition of command line argument -launchAppShowMinimized
  • Addition of command line argument -launchAppShowMinNoActive
  • Addition of command line argument -launchAppShowNA
  • Addition of command line argument -launchAppShowNoActivate
  • Addition of command line argument -launchAppShowNormal

Version 6.01
Version 6.01 includes the following functionality:

  • Bug fix for missing first callstack entry on some collected callstacks for DLL linked with static runtime. Bug does not affect dynamic runtimes.

Version 6.00
Version 6.00 includes the following functionality:

  • Release of new 64 bit and 32 bit version of C++ Memory Validator.

Version 5.84
Version 5.84 includes the following functionality:

  • Bug fix for incorrect return value from SymGetModuleInfo(64) DbgHelp.dll API

Version 5.83
Version 5.83 includes the following functionality:

  • Bug fix for broken resources in some user interface components.

Version 5.82
Version 5.82 includes the following functionality:

  • Bug fixes for Pages and Analysis tab interaction.
  • Bug fix for hooking.

Version 5.81
Version 5.81 includes the following functionality:

  • Bug fix for Pages view. Statistics calculated properly. Previously they were not being reset between calculations.
  • Bug fix for code instrumentation disassembler.

Version 5.80
Version 5.80 includes the following functionality:

  • Bug fixes for Memory Coverage view.
  • Bug fix for Coverage Filters dialog.
  • Bug fixes for Memory Analysis view.
  • Command line arguments containing quotes can now be passed to target programs.

Version 5.79
Version 5.79 includes the following functionality:

  • Bug fix for symbol servers settings dialog.
  • Bug fix for failing to fetch symbols from symbol servers in certain situations.

Version 5.78
Version 5.78 includes the following functionality:

  • Bug fix for incorrect heap deallocation (causing exception) in CreatePalette hook.

Version 5.77
Version 5.77 includes the following functionality:

  • Lock handling change for symbol handler. Spend less time in lock. Reduce likelihood of deadlock in stub.
  • Bug fix for exception in hook for ExtractIconEx(A/W) if the function fails to return any icons.
  • Licensing code update.

Version 5.76
Version 5.76 includes the following functionality:

  • Changed application and Hooked DLLs bug fix and behaviour change.
  • Bug fixes and minor ux changes for Objects tab.
  • Bug fixes and minor ux changes for Sizes tab.
  • Maintenance: Licensing code update. Code cleanup. Code removal.

Version 5.75
Version 5.75 includes the following functionality:

  • Editor settings dialog bug fix.
  • Subst drives settings dialog bug fix.

Version 5.74
Version 5.74 includes the following functionality:

  • Changed how file extensions are displayed in File Open / File Save dialog.
  • Speed improvement for all tree/grid controls. This will improve the performance tree controls with large datasets greatly.

Version 5.73
Version 5.73 includes the following functionality:

  • Bug fix for symbol handling.
  • Improved combo box population algorithm for watermarks, tag trackers, and all Objects and Sizes combo boxes. These will now only populate if they do not have focus, so if you are manipulating a combo it shouldn't update while you are doing that. Should also be faster.

Version 5.72
Version 5.72 includes the following functionality:

  • Addition of support for Borland C++ Builder 4.0.
  • Improved error reporting for failed Named Pipes.
  • Improved Symbol Server handling - now automatically quotes directories that include spaces.

Version 5.71
Version 5.71 includes the following functionality:

  • Collection, reporting and exporting of additional information about GDI handles.

Version 5.70
Version 5.70 includes the following functionality:

  • Bug fix for hooking functions.
  • Bug fix multi-threaded access to symbol in module manager.

Version 5.69
Version 5.69 includes the following functionality:

  • Bug fix for zero length callstacks.

Version 5.68
Version 5.68 includes the following functionality:

  • Misc software bug fixes.
  • New help file builder.

Version 5.67
Version 5.67 includes the following functionality:

  • Diagnostic view performance improvement.
  • Native code instrumentation performance improvement.
  • Datatype improvement for HeapAlloc code.
  • Addition of extra functions to the API.
  • Improvement to the way user defined allocations are handled on the Objects tab.

Version 5.66
Version 5.66 includes the following functionality:

  • Provisional support for Visual Studio 2013.

Version 5.65
Version 5.65 includes the following functionality:

  • Updated diagnostic view to allow filtering of the data displayed in the view
  • Addition of DbgHelp.dll symbol search path information to diagnostic view - to aid in diagnosing why symbols do not load.

Version 5.64
Version 5.64 includes the following functionality:

  • Bug fix for inactive add watermark, inactive bookmark, non-functioning virtual memory display.
  • Bug fix for Pages view and graphical display for this view.
  • Improved types from source code parser.

Version 5.63
Version 5.63 includes the following functionality:

  • Updated handling of memory and handle and buffer hooks.
  • Support for qMalloc, qRealloc, qFree, qMallocAligned, qReallocAligned, qFree in QT 4.
  • Support for qMalloc, qRealloc, qFree, qMallocAligned, qReallocAligned, qFree in QT 5 although qMalloc, qRealloc and qFree are deprecated in Qt 5..
  • Improved handling of DLL filtering.
  • Bug fix for Pages display.
  • Bug fix for ExtractIconEx(A/W).
  • Bug fix for crash during shutdown.

Version 5.62
Version 5.62 includes the following functionality:

  • Bug fix for crash in symbol handler.

Version 5.61
Version 5.61 includes the following functionality:

  • Environment variables dialog (on launch dialog/wizard) can now acquire environment variables from the system and import and export environment variables from/to files.
  • Symbol handling update to convert SoftwareVerify patches/hooks from not-in-a-dll.dll to human readable names.
  • New running size value on Objects tab.
  • Support for SetOaNoCache to prevent caching of BSTRs in OLEAUT32.DLL
  • New (optional) feature to force sending of data when FreeLibrary called. This can improve symbol handling results in special cases at the expense of a performance hit.

Version 5.60
Version 5.60 includes the following functionality:

  • Bug fix for fetching of symbols and symbol server handling.
  • Bug fix for settings dialog.
  • Bug fix for export dialog.

Version 5.59
Version 5.59 includes the following functionality:

  • Bug fix for error R6034 - loading wrong C Runtime error displayed during startup or shutdown of target application

Version 5.58
Version 5.58 includes the following functionality:

  • Bug fix for VariantClear() on Windows 8.
  • Bug fix for launch dialog and launch wizard/
  • Updated symbol server support.
  • Improvements to Custom Hooks. Support for THISCALL and FASTCALL calling conventions.
  • Bug fixes for Custom Hooks dialog and custom hook type and allocation size handling.
  • Update for .Net support.

Version 5.57
Version 5.57 includes the following functionality:

  • Support for VS2012, .Net Framework 4.5.
  • Bug fix for Tips dialog.

Version 5.56
Version 5.56 includes the following functionality:

  • New debugging symbols handler. Faster, more robust, more fault tolerant.
  • Bug fix for text editor crash.
  • Bug fix for ordinal handling.

Version 5.55
Version 5.55 includes the following functionality:

  • New debugging symbols handler. Faster, more robust, more fault tolerant.

Version 5.54
Version 5.54 includes the following functionality:

  • Bug fix for broken keygen for eval/beta versions.
  • Bug fix for buffer overrun.

Version 5.53
Version 5.53 includes the following functionality:

  • Bug fix for auto-fixing data comms control values.
  • Addition of support for floating licensing.

Version 5.52
Version 5.52 includes the following functionality:

  • Improved custom hooks dialog.
  • Bug fix for custom hooks.
  • Bug fix for Memory Coverage display.
  • Bug fix for launching different application to the Hooked DLLs settings.
  • UX modifications for Inject into Process dialog.

Version 5.51
Version 5.51 includes the following functionality:

  • Many changes to improve the UX of the software.
  • Prevent double clicks on the tree +/- button from changing the tree state.
  • Prevent losing selection when deleting data from grids.
  • Improved settings dialog selection on tree control.
  • Improved progress dialog.
  • Improved UI feedback after loading settings or resettings settings from the settings dialog.
  • Auto-expand the memory hotspot graph after refresh.
  • Change to tree control to remember it's expand/contract state between clicks.

Version 5.50
Version 5.50 includes the following functionality:

  • Improvements to tree expand/collapse behaviour to improve user experience.
  • Bug fix for erroneous DelayHook message.

Version 5.49
Version 5.49 includes the following functionality:

  • Bug fix for buffer overrun.

Version 5.48
Version 5.48 includes the following functionality:

  • New version of editing component, providing additional functionality.
  • New cleaner drawing style for tree/grid control.
  • Minor UX changes.
  • Minor bug fixes.
  • Bug fix for slow shutdown.

Version 5.47
Version 5.47 includes the following functionality:

  • Bug fix for statistics calculation on Memory View tab.

Version 5.46
Version 5.46 includes the following functionality:

  • User experience improvements for DbgHelp.dll chooser.
  • Bug fix for UI and Stub Global Hook settings.

Version 5.45
Version 5.45 includes the following functionality:

  • Initial support for VS2012.
  • Bug fix for Analysis tab infinite loop.
  • Bug fixes from static analysis.

Version 5.44
Version 5.44 includes the following functionality:

  • Deadlock bug fix for long queue hysterisis throughput.

Version 5.43
Version 5.43 includes the following functionality:

  • Bug fix for possible deadlock with Session Manager.
  • Bug fix for possible deadlock with Diagnostic View.
  • Bug fix for OpenFile() hook.

Version 5.42
Version 5.42 includes the following functionality:

  • Bug fixes after static analysis work.

Version 5.41
Version 5.41 includes the following functionality:

  • Improved file handling. Can now read ANSI, UTF-8, UTF-16 (both variants).
  • Bug fix for mismatched deallocation detection.
  • Launch dialog/wizard has additional check for UPX compressed executables.

Version 5.40
Version 5.40 includes the following functionality:

  • UX fixes for Session Manager dialog.
  • All sessions now have a session alias so you can give a session a meaningful name.
  • New option on Tools menu allowing you to explore the debug info status per DLL.

Version 5.39
Version 5.39 includes the following functionality:

  • Replaced Tip of the Day dialog with a new modeless tips dialog that works very differently.
  • UX improvements to various dialogs.
  • Minor bug fixes.

Version 5.38
Version 5.38 includes the following functionality:

  • Bug fix for settings load/saving.
  • Bug fix for crash caused by incorrect indexing of callstack.

Version 5.37
Version 5.37 includes the following functionality:

  • Bug fix for callstack filtering.
  • Bug fixes from static analysis tool.
  • Editing tool upgrade.

Version 5.36
Version 5.36 includes the following functionality:

  • Bug fix for data comms from stub to GUI.
  • Bug fix for uninitialised data detection.
  • Addition static analysis code improvements.

Version 5.35
Version 5.35 includes the following functionality:

  • Bug fix for Visual Studio editing.
  • More improvements from static analysis work.

Version 5.34
Version 5.34 includes the following functionality:

  • Bug fix for -commandFile command line argument handling.

Version 5.33
Version 5.33 includes the following functionality:

  • Support for CC3290MT.DLL, CC32100MT.DLL, CC32110MT.DLL, CC32120MT.DLL.
  • New behaviour for -program programName. If programName is specified without a path we search the start directory and the PATH environment variable and select the first matching program.
  • Ability to specify tab width for source code views.
  • Bug fix for launching progams from the command line with the -allArgs argument.
  • Bug fix for memory coverage.

Version 5.32
Version 5.32 includes the following functionality:

  • More bug fixes from static analysis with Visual Lint.
  • More bug fixes from static analysis with Visual Lint.
  • New file format - not backwards compatible (sorry). But the change is worth it.
  • Addition of -allArgs command line argument.
  • Change to command line behaviour - unrecognised arguments are ignored. Use -allArgs instead.

Version 5.31
Version 5.31 includes the following functionality:

  • Bug fixes from static analysis with Visual Lint.
  • Bug fix for invalid handle crash in user interface.

Version 5.30
Version 5.30 includes the following functionality:

  • Bug fix for URL encoding when talking to software update server.

Version 5.29
Version 5.29 includes the following functionality:

  • Lock handling performance improvements.
  • Improvements to timeline.
  • Bug fix for crash accessing callstack in user interface.
  • Software update changes - update will not happen when run from command line.

Version 5.28
Version 5.28 includes the following functionality:

  • Bug fix and performance improvement for handling the various combinations of VirtualAlloc(Ex) and VirtualFree(Ex) than an application can perform.
  • Bug fix for potential memory corruption.
  • Various memory leak fixes.

Version 5.27
Version 5.27 includes the following functionality:

  • Improved fetching of datatypes for callstacks with missing symbols at the end of the callstack.
  • Bug fix for software updater throwing MFC exception on some systems.

Version 5.26
Version 5.26 includes the following functionality:

  • Updated self-installer to handle additional security checks for some computer systems.

Version 5.25
Version 5.25 includes the following functionality:

  • Bug fix for memory corruption leading to crash when monitoring VirtualAlloc(Ex)/VirtualFree(Ex).
  • Addition of datatypes for use with Objects/Sizes tabs when monitoring VirtualAlloc(Ex)/VirtualFree(Ex).
  • XML export rendering improvement - now readable with just a text editor

Version 5.24
Version 5.24 includes the following functionality:

  • Addition of software update code.

Version 5.23
Version 5.23 includes the following functionality:

  • Bug fix for working with .Net services.

Version 5.22
Version 5.22 includes the following functionality:

  • Removal of Novice user interface mode.
  • Bug fix for filters dialog - Objects.
  • Bug fix for Lrequest data.
  • Bug fix for working with Windows 7 services.

Version 5.21
Version 5.21 includes the following functionality:

  • Bug fix for local filters.
  • Improved Symbol Server support - workaround for hang caused by WinInet global Mutexs.
  • New tutorial tab and additional option on Help menu.

Version 5.20
Version 5.20 includes the following functionality:

  • Update for evaluations.

Version 5.19
Version 5.19 includes the following functionality:

  • Tutorials moved to the website. Tutorial link always available from help menu and at startup.

Version 5.18
Version 5.18 includes the following functionality:

  • Bug fix for crash during shutdown.

Version 5.17
Version 5.17 includes the following functionality:

  • Improved "Symbol Lookup" Visual Studio chooser based upon user feedback.
  • Bug fix for SysAllocString().

Version 5.16
Version 5.16 includes the following functionality:

  • Low data processing race condition bug fix.

Version 5.15
Version 5.15 includes the following functionality:

  • New file missing dialog implementation.
  • Bug fix for code instrumentation.
  • Bug fix for uninitalised data detection error reporting.

Version 5.14
Version 5.14 includes the following functionality:

  • Bug fix for crash in data investigation dialog.
  • Bug fix for buffer overrun on session export dialog.

Version 5.13
Version 5.13 includes the following functionality:

  • New Sizes tab.
  • New layout for most main tabs, simplifying and improving workflow.

Version 5.12
Version 5.12 includes the following functionality:

  • Bug fix for MingW stabs debug information reading.
  • New menu implementation, addition of bitmaps.

Version 5.11
Version 5.11 includes the following functionality:

  • Bug fix for COMCTL32.DLL bitmap handling.

Version 5.09
Version 5.10 includes the following functionality:

  • Bug fix for disassembler using sprintf during target application shutdown after the CRT has unloaded.
  • Bug fix for DLL missing warning when injecting on systems without older versions of Visual Studio.
  • Bug fix for Memory Validator API stack walking.
  • Memory Validator API definitions changed to accomodate C linkage as well as C++ linkage.
  • Memory Validator API documentation changed to include x64 and x86 processors.
  • Inject, Launch and Wait wizard layouts changed to be more industry standard behaviour.
  • Bug fix for CommandLineToArgvW() on Windows XP and above.
  • Context menus edited to reduce menu choices and improve user experience.

Version 5.09
Version 5.09 includes the following functionality:

  • Bug fix for VirtualAlloc(Ex) data corruption/crash.

Version 5.08
Version 5.08 includes the following functionality:

  • Bug fix for unwanted disk FindFirstFile.
  • Improved COFF/STABS symbol handling.

Version 5.07
Version 5.07 includes the following functionality:

  • Bug fix for memory timeline.
  • Bug fix for VirtualAlloc() handling.
  • Bug fix for DbgHelp.dll specification.
  • Additional techniques for identifying Visual Studio installs.
  • Bug fix for tracking printer handles.

Version 5.05
Version 5.06 includes the following functionality:

  • Reduced mouse cursor flicker.
  • Bug fix for race condition when starting second or subsequent session, could cause possible crash.
  • Fix minor bug fixes.
  • When run from the command line using command line options the return code is now the return code of the most recently run app.

Version 5.05
Version 5.05 includes the following functionality:

  • Bug fix for user defined memory reallocation.
  • Change of behaviour for symbol server dialog.
  • Change of behaviour for VirtualAlloc(Ex)/VirtualFree(Ex) handling.
  • Bug fix for OpenGL related data collection crash in special circumstances.

Version 5.04
Version 5.04 includes the following functionality:

  • Support for mixed-mode .Net services.
  • New communications architecture.
  • New hook for OpenProcessToken().
  • New handling for dbghelp.dll and different versions of Visual Studio.
  • Bug fix for tracking data inside WndProc.
  • Bug fix for passing wrong DC to Release() or DeleteDC().

Version 5.03
Version 5.03 includes the following functionality:

  • New dedicated graphical timeline view to replace the old timeline subtab on the Virtual view.
  • New Memory and Handles subtabs on Hotspots view.
  • Support for .Net framework 4, CLR 4.
  • Bug fix for callstack walking for some mixed mode apps.
  • More robust callstack walking for all applications.
  • Updated help to match the above changes.

Version 5.01
Version 5.02 includes the following functionality:

  • Bug fix for Virtual Timeline.
  • Bug fix for SafeArrays.
  • Filter comment updated when modifying filter.
  • Bug fix for filters when specifying instant or temporary filters with index into callstack.
  • Minor improvment to Export Session Dialog.

Version 5.01
Version 5.01 includes the following functionality:

  • Various bug fixes from the x64 porting work.
  • Bug fix for filter by symbol name.
  • Bug fix for filter by class name.
  • Bug fix for random crash while shutting a session.
  • Bug fix for memory overrun in exceptional circumstances in stub.

Version 5.00
Version 5.00 includes the following functionality:

  • Filter supports filtering by partial callstack matching anywhere in the callstack.
  • Filter supports filtering by class name.
  • Filter supports filtering by symbol name.
  • Filter behaviour change for root and leaf callstack filters created from context menu.
  • Bug fix for early detach from target application during shutdown inside ExitProcess(). Can cause (in certain applications) certain deallocation data to not be sent to MV user interface, resulting in what looks like leaks.
  • Bug fix for DbgHelp.dll crash inside ExitProcess on Windows 7 (only affects some applications). A side effect of this bug is that some memory can be reported as a leak when it is not a leak.
  • Major performance improvement if you are using the memory monitoring API and you are collecting significant amounts of data using this API.

Version 4.99
Version 4.99 includes the following functionality:

  • Bug fix for statically linked realloc() data tracking.
  • Bug fix for statically linked realloc() data tracking when passing NULL as the address to realloc.
  • Addition of Filter by Thread ID to Memory tab.
  • Addition of Filter by Callstack Root to Memory tab.
  • Addition of Filter by Callstack Leaf to Memory tab.
  • Addition of Filter by Callstack Root to Analysis tab.
  • Addition of Filter by Callstack Leaf to Analysis tab.
  • Addition of tag tracker selection to Find Memory dialog box on Analysis tab.
  • Addition of thread id selection to Find Memory dialog box on Analysis tab.

Version 4.98
Version 4.98 includes the following functionality:

  • Maintenance release.

Version 4.97
Version 4.97 includes the following functionality:

  • Bug fix for profiling mixed-mode .Net applications when running on a 64 bit operating system.

Version 4.96
Version 4.96 includes the following functionality:

  • Memory Coverage information now stored in dedicated folders.
  • Additional information on the diagnostic tab.
  • Additional information in exception reports.
  • Bug fix for reading stabs debug information from MingW4.4 compiler (handles relative filenames correctly).
  • Bug fix for reading COFF debug information from MingW4.4 compiler (Performance improvement).
  • Bug fix for Memory Coverage for Borland Debug, COFF and Stabs.

Version 4.95
Version 4.95 includes the following functionality:

  • Support for Windows 7 KernelBase.dll hooking.
  • Support for editing with VS 2010.
  • Bug fix for editing with VS 2008
  • Bug fix for session filters and global filters.
  • Bug fix for GetProcAddress() hooking.
  • Bug fix for MinGW symbol handling.
  • Bug fix for crash fetching long .Net symbols in mixed mode applications.
  • Bug fix for Delphi hooking.

Version 4.94
Version 4.94 includes the following functionality:

  • Objects tab, change to % Size value calculation to give a more useful value..
  • Bug fix for Objects tab, Types and Sizes data displays, watermarks subtab.
  • Bug fix for template type name calculations - templates that use templates now give correct type names.
  • Bug fix for watermarks not displaying if watermark created as first ever data item (via API or GUI).

Version 4.93
Version 4.93 includes the following functionality:

  • Addition of Memory Paragraph sub tab to Virtual view.
  • Bug fix for handle leak with ToolHelp32.
  • Bug fix for failure with socket() when incorrectly hooking resource DLLs that have more than one section (example: mfc80enu.dll).

Version 4.92
Version 4.92 includes the following functionality:

  • HTML/XML export changed to export mutliple duplicate callstack information. This makes the resulting files just as useful, but more compact.
  • Bug fix for environment variable handling.
  • Bug fix for license installer software.

Version 4.91
Version 4.91 includes the following functionality:

  • Improved handling of "Allocation Greater Than" breakpoint handling.
  • New option on the callstack collection settings dialog - the ability to discard entries at the start of a callstack that have no module, no function name and no filename - these are often .Net trampoline functions from .Net code into native code.
  • Improved handling of mixed mode .Net applications - specifically .Net applications that call unmanaged code directly from .Net code.
  • Version checking for DbgHelp.dll - status and any warning messages displayed on Diagnostic tab.
  • Improved memory export dialog to prevent combinations of options that are not useful.
  • Improved thread filter dialog to allow sorting on thread id and thread name.
  • Changed the naming of various filter functions on context menus to be more intuitive.
  • Change to how filters work so that filters created part way through a callstack have data related to that position in the callstack (as opposed to the root of the callstack).
  • Bug fix for load/save settings.

Version 4.90
Version 4.90 includes the following functionality:

  • Improved type information so that when no filename available, type information is supplied as the class::method name - this is more useful than [NoFileName:0].
  • Bug fix for incorrect message map entry on coverage view. This potentially could lead to a crash.
  • Bug fix for Memory Coverage Auto Merge configure dialog.

Version 4.88
Version 4.89 includes the following functionality:

  • Minor UI changes to add user hints.
  • All executables are now code signed to prevent warnings on Vista / Windows 7.

Version 4.88
Version 4.88 includes the following functionality:

  • Performance improvement for Memory Coverage.
  • Provisional support for Visual Studio 2010 B2.
  • Bug fix for reading various types of malformed DLLs.
  • Correct detection of Resource only DLLs.

Version 4.87
Version 4.87 includes the following functionality:

  • Support for MingW gcc/g++ compilers when compiled with STABS debug information (-gstabs switch)
  • Support for applications built using QtCreator
  • .Net method module, class, method names in native callstacks
  • Changed colours for some displays to improve readability.
  • Bug fix for hang during install on Windows Server 2003.
  • Bug fix for C/C++ parsing.

Version 4.86
Version 4.86 includes the following functionality:

  • Improved filtering: Filters can now filter uninitialised data by the name of the uninit data member.
  • Support for MingW gcc/g++ compilers when compiled with COFF debug information (-gcoff switch)
  • New implementation of Memory Coverage tab.
  • Bug fix: Improved detection of placement operator new.
  • Bug fix for Delphi memory hooks.

Version 4.84
Version 4.85 includes the following functionality:

  • Updated source code editor.
  • Bug fix for Hotspots view <UNKNOWN> symbols.
  • Support for launching batch files as well as executable. First application launched by batch file will be monitored.
  • Bug fix for data corruption when loading mvm files.
  • Bug fix for static CRT hooking for Visual Studio 2005/2008.
  • Bug fix for static CRT hooking for Borland C++.

Version 4.84
Version 4.84 includes the following functionality:

  • Bug fix for serialization.
  • Bug fix for Trace/OutputDebugString(A)(W)
  • Change of behaviour for applications launched via command line. Applications that are not hidden are now launched with no-activate status so that although they are visible they do not grab the focus.
  • Bug fix for CreatePipe hook.

Version 4.83
Version 4.83 includes the following functionality:

  • Update to status messages on Memory tab to improve usability.
  • Bug fix for shutdown handling to prevent busy wait with DbgHelp.
  • Bug fix for advanced DbgHelp symbol handling.
  • Bug fix for Windows Symbols PDB Paths handling on launch dialog.

Version 4.82
Version 4.82 includes the following functionality:

  • Bug fix for long delay when hooking certain applications at startup.

Version 4.80
Version 4.81 includes the following functionality:

  • Support for OpenGL32.
  • Hooked DLLs, sorted DLLs in list.
  • Bug fix for custom hooks, now obeys global collect data settings.
  • Bug fix for side-effect changing last error status in GetProcAddress() hook.
  • Bug fix for Memory Validator holding on to DLL handles even when sessions deleted.
  • Misc bug fixes.
  • Bug fix for data corruption when using global filters dialog.

Version 4.80
Version 4.80 includes the following functionality:

  • Bug fix for delay load hooking of Winsock DLLs by MFC 8.0
  • Bug fix for session export to HMTL and XML.

Version 4.79
Version 4.79 includes the following functionality:

  • Addition of new command line argument. -launchAppHidden. Causes the program started with -program to run hidden.
  • Minor tip of day bug fix.
  • Minor gui fixes.
  • Columns re-ordered on Hotspots tab to provide better information visualisation.
  • Bug fix to C++ parser, resulting in better object type detection.

Version 4.78
Version 4.78 includes the following functionality:

  • Bug fix for data corruption caused by incorrect data item being deleted - bug only happens when collectings CRT data and collecting other types of memory data AND a particular sequence of allocations occurs in a certain order.
  • Minor bug fixes.

Version 4.76
Version 4.77 includes the following functionality:

  • Bug fix for DLLs combo on Objects tab.
  • Bug fix for session comparison dialog.
  • Bug fix for licensing bug.
  • Bug fix for Semaphore close bug - preventing comms between test application and Memory Validator GUI on some computers.

Version 4.76
Version 4.76 includes the following functionality:

  • Bug fix for serialization bug introduced with Memory Validator V4.74.

Version 4.75
Version 4.75 includes the following functionality:

  • Bug fix for session comparison dialog.

Version 4.74
Version 4.74 includes the following functionality:

  • Bug fix for possible deadlock when tracking restricted range of allocation sizes.
  • Bug fix for data member detector crash when using Visual Studio 2005 (or later) and uninit data detection.

Version 4.73
Version 4.73 includes the following functionality:

  • Modified Inject dialog to be resizable and remember which column it sorts on and previous selection.
  • Bug fix for crash on hotspot view.

Version 4.72
Version 4.72 includes the following functionality:

  • Bug fix for launching on Windows Vista and Windows 2008.

Version 4.71
Version 4.71 includes the following functionality:

  • Addition of tag tracker functionality. This adds a new tabs to the Objects tab, new queries to the Analysis tab and new filtering to the Memory tab. See help for details.
  • Major redesign of functionality for hotspots tab, new ways of displaying data, etc.
  • Support for sorting the results on the Memory tab.
  • More options for instant filters and temporary filters on Memory and Analysis tabs.
  • Bug fix for data race on objects tab.
  • Bug fix for COM AddRef/Release tracking.
  • Bug fix for obscure "The Handle is invalid." error message that can happen during launch.
  • Bug fix for launching on Windows Vista and Windows 2008.
  • Various usability improvements to address conflicting settings that can be chosen in the settings dialog.
  • Updated API. Addition of svlDataTracker C++ class definition.
  • Updated help to match new UI.
  • Updated tutorial to match new UI.

Version 4.70
Version 4.70 includes the following functionality:

  • Updated filter dialog, updated help.
  • Updated callstack filter behaviour - now supports filter from root and filter from leaf.
  • Bug fix for filters and objects updating on Objects tab.
  • Code hooking rationalisation.
  • Bug fix for crash in strdup() and wcsdup() when Memory Validator is working release builds that call strdup() or wcsdup() with a NULL pointer.
  • Bug fix for working with mixed-mode .Net DLLs. MV now tracks data in mixed-mode DLLs and DLLs loaded from mixed mode DLLs.
  • Bug fix for data corruption in tree/grid control class hierarchy.

Version 4.69
Version 4.69 includes the following functionality:

  • Bug fix for data corruption when updating watermarks.
  • Bug fix for race condition for GDI stub data.
  • Bug fix for false positive leak report for CToolTipCtrl Window handles.

Version 4.68
Version 4.68 includes the following functionality:

  • Robustness maintenance.

Version 4.67
Version 4.67 includes the following functionality:

  • Bug fix for interaction between Memory Validator and MSDIA80.DLL.
  • Addition of support for Symbol Servers.
  • Detection of incorrect linking with C runtime version for Visual Studio 2005/2008 to detect coredll.dll (a WinCE dll) type errors.
  • Detection of launching applications from windows\system32 or injecting into applications/services running from windows\system32.
  • Addition of 32 bit executable test.
  • Bug fix for watermarks.

Version 4.66
Version 4.66 includes the following functionality:

  • Bug fix for Session Manager dialog, attach dialog and attach wizard.
  • Improved .Net Symbols Warning dialog functionality.
  • Addition of hooks for _strdup(), wcsdup(), _mbsdup().

Version 4.65
Version 4.65 includes the following functionality:

  • Bug fix for watermarks.

Version 4.63
Version 4.64 includes the following functionality:

  • Percentage bars added to Allocations View and Objects View.

Version 4.63
Version 4.63 includes the following functionality:

  • Bug fix for crash with inject wizard.
  • Bug fix for background colour on some resizing graphical dialog boxes.
  • Bug fix for source code display possible crash when in a splitter window.

Version 4.62
Version 4.62 includes the following functionality:

  • Bug fix for crash with settings dialog File Locations.
  • Replacement of all 3rd party tab controls with a custom tab control.

Version 4.61
Version 4.61 includes the following functionality:

  • Bug fix for crash with novice settings dialog.
  • Bug fix for source code control and misc controls flickering when resizing in a splitter window.

Version 4.59
Version 4.60 includes the following functionality:

  • Addition of -fileLocations command line argument.
  • Addition of Export and Import options to File Locations settings dialog.
  • Bug fix for Delphi memory data collection.
  • Bug fix for settings dialog to allow correction selection of specified tab.
  • Update to licensing dialog to prevent confusion with example application.
  • Minor bug fixes.

Version 4.59
Version 4.59 includes the following functionality:

  • Replacement of all 3rd party grid/tree controls with the same virtual grid/tree control used for the main displays. This change has been made for consistency of user interface and also to facilitate future ports of the software to alternate operating systems and widget toolkits.
  • Bug fix for flickering main display when resizing.
  • Column sort highlighting - arrow on column header and colour column colour hinting for the entire column.
  • New layout for setting dialog, to make settings dialogs as similar as possible across the entire Software Verify product range.
  • New default colours - click Reset on settings dialog to get them (other settings will change as well!)

Version 4.58
Version 4.58 includes the following functionality:

  • Improvement to the algorithm for determining the data type of memory allocations.
  • Improvement to the algorithm for determining the data type of templated memory allocations.
  • Bug fixes for two race conditions for data relating to object usage.

Version 4.57
Version 4.57 includes the following functionality:

  • Bug fix for some code that could cause Data Execution Prevention violations if you had this Operating System option enabled. Code affected: Uninitialised data detection, Com reference counting, Deleted this detection, Corrupt memory detection.

Version 4.55
Version 4.56 includes the following functionality:

  • Added support for Borland cc3270.dll, cc3w270mt.dll, cc3280.dll, cc3280mt.dll.
  • Improved detection method for .Net modules.
  • Bug fix for minor memory leak when not detecting NULL and Invalid handle values.
  • Watermarks on Objects tab now improved to allow viewing of objects types between two watermarks.
  • Bug fix for "The handle is invalid" error when trying to launch applications.

Version 4.55
Version 4.55 includes the following functionality:

  • Bug fix for fatal crash in realloc handling code in GUI (bug is rare).
  • User interaction improvement for Thread Naming dialog.
  • User interaction improvement for Filter Entry dialog.
  • Bug fix for data processing race condition.

Version 4.54
Version 4.54 includes the following functionality:

  • Bug fix for realloc(ptr, 0); behavior.
  • Performance improvement for reading files.
  • Various bug fixes for the Memory search dialog on the Analysis tab.
  • Inclusion of helper application to delete symbol cache files.

Version 4.53
Version 4.53 includes the following functionality:

  • Bug fix for memory sampling crash for virtual tab (crash is rare).

Version 4.51
Version 4.52 includes the following functionality:

  • Bug fix for stack corruption on Memory Analysis tab if search for type with very long name.
  • Bug fix for stack overflow bug inspecting dependent DLLs on very large applications.
  • Provisional support for Visual Studio 9.0/2008

Version 4.51
Version 4.51 includes the following functionality:

  • Bug fix for crash on FileSettingsDialog.
  • Change to grid control Select-All behaviour.
  • Bug fix for Objects export information.
  • Bug fix for allocation size statistics gather for LocalFree().

Version 4.50
Version 4.50 includes the following functionality:

  • Bug fix for Allocator Alias settings return key interaction.
  • Change of instrumentation behaviour for uninitialised data, AddRef/Release, corrupt memory detection, deleted this detection to prevent an unusual crash when the same DLL is loaded, unloaded, load, unloaded etc in rapid succession (always gets the same load address).
  • Data display bug fix for memory tab.
  • Bug fix for uninitialised data, data member detector.
  • Bug fix for race condition (causes crash) for inter process comms one multi core/cpu machines. Bug is not visible on HyperThreaded machines or single cores CPUs. Bug has been seen on dual core CPUs, but is more obvious on dual core quad CPU machines.
  • Bug fix for incorrect behaviour in realloc hook for Visual Studio 7.0, 7.1, 8.0 when a multi-threaded application is run on a hyper threaded or multi CPU machine and the application makes a series of reallocations in close succession in multiple threads.

Version 4.49
Version 4.49 includes the following functionality:

  • Bug fix for crash with context menu (Show GDI) on Memory tab.
  • Bug fix for parsing types for constructor initialisation lists.
  • Feature Improvement: (Customer request) New hooks: OpenPrinter(); ClosePrinter(); and related functions.
  • Improvement to Virtual tab display of data relating to CRT allocations.

Version 4.48
Version 4.48 includes the following functionality:

  • Performance improvement for clearing displays when closing a session.
  • Performance improvement for Memory tab when data displayed on the tab.
  • Bug fix for lock handling.

Version 4.47
Version 4.47 includes the following functionality:

  • Bug fix for memory corruption in user interface if hotspot tab was used.
  • Minor user interface bug fixes and usability improvements.

Version 4.46
Version 4.46 includes the following functionality:

  • Bug fix for crash introduced with V4.45 under special circumstances.

Version 4.45
Version 4.45 includes the following functionality:

  • Improvements to Virtual Memory Data display.
  • LocalAlloc tracking and GlobalAlloc tracking updated to display differences between fixed and moveable memory allocations.

Version 4.44
Version 4.44 includes the following functionality:

  • Source code colouring - more languages supported.
  • File dialog file extension handling improvements.
  • Launch dialog/wizard - addition of Delete button.

Version 4.43
Version 4.43 includes the following new functionality:

  • Bug fix for -waitName command line argument.
  • Bug fix for closing session routine.

Version 4.42
Version 4.42 includes the following new functionality:

  • Maintenance release - bug fix in a support library.
  • Removal of Auto Update option on display tab of settings dialog. This option causes too much trouble with users that mis-use the option, leading to poor performance, hence removed.

Version 4.41
Version 4.41 includes the following new functionality:

  • Support for instrumenting Borland BPL files.
  • Bug fix for memory buffer checking, bug caused by compiler optimization.

Version 4.40
Version 4.40 includes the following new functionality:

  • Bug fix for serialization of Watermarks.

Version 4.38
Version 4.39 includes the following new functionality:

  • Automatic disabling of Visual Leak Detector (VLD.DLL) to prevent conflict between Visual Leak Detector and Memory Validator when running with Memory Validator. This only works if VLD.DLL is loaded via LoadLibrary(). If VLD.DLL is implicitly linked it will still cause problems - in this case we warn you about the problem.

Version 4.38
Version 4.38 includes the following new functionality:

  • Support for monitoring unmanaged allocations in unmanaged DLLs in .Net 1.0/1.1/2.0 applications.
  • Bug fix for hotspots tab.

Version 4.37
Version 4.37 includes the following new functionality:

  • IMproved HTML Help handling.

Version 4.36
Version 4.36 includes the following new functionality:

  • "Help PDF" added to Help menu if PDF help file is present in installation directory.
  • Bug fix for installer.
  • Behaviour change for Global Hook DLL handler.

Version 4.34
Version 4.35 includes the following new functionality:

  • Bug fix and logic improvement for GetProcAddress() substitution handling.

Version 4.34
Version 4.34 includes the following new functionality:

  • Bug fix for crash accessing registry on some machines with V4.33.

Version 4.33
Version 4.33 includes the following new functionality:

  • Feature Improvement: (Customer request) Multiple Memory Validator instances now supported for "Inject" and "Wait for Application" as well as for launching.
  • Feature Improvement: (Customer request) Detection of invalid handles passed to CloseHandle().
  • Bug fix for delay loaded hooking (improved handling of error conditions).
  • Bug fix for functions previously loaded by delay load hooking but in Visual Studio 8.0 are now loaded by GetProcAddress by MFC. Examples of this are ImageList_Destroy().
  • Bug fix: Any .NET DLLs loaded by the instrumented process will be ignored.
  • Modified launch, inject and wait for application topics to include references to new help topics explaining possible reasons for failure to inject. Updated help topics relating to working with services. New Help topics on:
    • What causes Inject or launch to fail?

Version 4.32
Version 4.32 includes the following new functionality:

  • Bug fix for delay loaded hooking.
  • Bug fix for CancelWaitableTimer hook.
  • Bug fix for Borland static C library hooks.
  • Bug fix for COFF/CodeView debugging info reading.
  • Updated scrollbar handling for editor component.

Version 4.30
Version 4.31 includes the following new functionality:

  • Bug fix for C++/C datatype/allocation parser.
  • Bug fix for uninitialised data member reporting.

Version 4.30
Version 4.30 includes the following new functionality:

  • Customer Request: Addition of 7 new contextx menu items on the Pages tab to allow queries to be performed on data in the fragmentation display.
  • Bug fix for FALSE Win32 heap memory leaks reported from RPCRT4.DLL

Version 4.29
Version 4.29 includes the following new functionality:

  • Bug fix for Objects tab when switching between threads, DLLs and Watermarks.
  • Bug fix for session manager dialog.

Version 4.28
Version 4.28 includes the following new functionality:

  • Feature improvement: When tracing handles any data display for a DLL handle will be followed by the DLL name (if the DLL is loaded).
  • Behaviour change: When tracing VirtualAlloc(Ex) Memory Validator would only trace those allocations with MEM_RESERVE in the allocation type flags. Now if you specify MEM_COMMIT and the first page in the region you want to commit is not currently commited Memory Validator will track that region as well (since it will be automatically treated as having the MEM_RESERVE flag by the Operating system).
  • Change to callstack walking: Callstack walk ending has been improved. Callstack walks for CRT allocations are now more complete.
  • Addition of extra diagnostic data for helping diagnose problems when data goes bad.
  • Bug fix for rare crash whilst instrumenting code.
  • New hook for SetWindowRgn

Version 4.26
Version 4.27 includes the following new functionality:

  • Objects tab colouring improved to facilitate easier reading and identification of data.
  • Tree control behaviour improved so that opening a tree at the bottom of the screen will cause the tree to scroll to see the data that is "off" the bottom of the screen.
  • Bug fix for potential buffer overflow when command line of tested application is very long (MAX_PATH + 256 TCHARs).
  • Command line displayed on diagnostic tab.
  • Detailed command line displayed on diagnostic tab when in regression test mode.
  • Detection of StarDock Window Blinds so that it can be safely ignored.
  • Addition of Return Codes to command line documentation.
  • Addition of hooks for the WinHttp APIs WinHttpOpen, WinHttpConnect, WinHttpOpenRequest, WinHttpCloseHandle.

Version 4.26
Version 4.26 includes the following new functionality:

  • Bug fix for obtaining type from source code when object type unknown.
  • Major performance improvement when obtaining type from source code when object type unknown.
  • Added support for memory allocators in Intel Fortran.

Version 4.25
Version 4.25 includes the following new functionality:

  • Bug fix for diagnostic tab when loading or switching sessions.
  • Bug fix for tutorial handling and tip of day.
  • Improved splitter window resizing.

Version 4.24
Version 4.24 includes the following new functionality:

  • Uninitialized data now shows member names rather than offsets into the object when member name information can be determined.
  • New functionality on Analysis tab: New button User Defined to allow easy display of user defined objects and user defined reference counts.
  • Addition of tracking Initialization and destruction of CRITICAL_SECTION objects, including double deletes and double initializations.
  • Change to help information provided on context menu to provide more information.
  • Misc bug fixes.

Version 4.23
Version 4.23 includes the following new functionality:

  • Extra data saved in sessions relating to watermarks on Objects tab.
  • DLL combo on Objects tab is now sorted alphabetically.
  • User interface will not allow duplicate watermark names.
  • User interface will not allow duplicate bookmark names.
  • Analysis tab - improvements to supplementary data in search and results view.
  • UI modifications for launch dialog.
  • Bug fix for Global Hook UI DLLs.

Version 4.22
Version 4.22 includes the following new functionality:

  • Bug fix for incorrect statistics on the Objects tab and running objects dialog when using VirtualFree() with a non-zero size.
  • New feature: When watermarks are placed a snapshot of the objects tab is taken. This allows you to compare these snapshots at a later date.
  • New feature: Ability to export Objects tab in HTML and XML formats.
  • Addition of Watermarks tab to Objects left hand pane.
  • Addition of Threads, DLLs, Watermarks tab to Objects right hand pane.

Version 4.21
Version 4.21 includes the following new functionality:

  • Bug fix for memory corruption (causes a crash) when parsing unorthodox source code in specific situation.
  • Bug fix for race condition causing crash on Objects statistics crash (rare).
  • Bug fix for memory corruption on Analysis tab.

Version 4.20
Version 4.20 includes the following new functionality:

  • Bug fix for failing to load MFC80(u)(d).DLL symbols.
  • Bug fix for symbols.
  • Minor user interface changes.
  • Additional help for symbol loading topics.

Version 4.19
Version 4.19 includes the following new functionality:

  • Bug fix for filter manipulation crash.
  • Updated exception handler.
  • Rebuilt help file to remove potentially dangerous bookmark characters and use new help compiler. This action is in response to a few users complaining that HTML Help crashed for them.
  • Bug fix for UI Global Hook intercept dialog.
  • Bug fix for DLL Hooking.

Version 4.18
Version 4.18 includes the following new functionality:

  • Bug fix for memory corruption detection.

Version 4.17
Version 4.17 includes the following new functionality:

  • Bug fix for stack walking.
  • Addition of support for Metrowerks 9.0 C/C++ compiler.

Version 4.16
Version 4.16 includes the following new functionality:

  • Bug fix for object type statistics for SafeArray. If you have non-leaking SafeArrays but the Object Count tab shows increasing SafeArray counts this bug is fixed.
  • Addition of support for Compaq Visual Fortran (also known as Digital Visual Fortran).

Version 4.15
Version 4.15 includes the following new functionality:

  • Bug fix for object type statistics when type unknown and object is deallocated.

Version 4.13
Version 4.14 includes the following new functionality:

  • Support for custom user builds of C runtime DLLs (support for the "sample" DLLs that Microsoft has released as a temporary fix due to the memory leaks inside MSVCRT80.DLL). See the Warning tab in the settings dialog for details. F1 for Help. This feature was a customer request.

Version 4.13
Version 4.13 includes the following new functionality:

  • Bug fix for crash adding watermark.

Version 4.12
Version 4.12 includes the following new functionality:

  • Update to accomodated debug format change with Visual Studio 2005.

Version 4.11
Version 4.11 includes the following new functionality:

  • Bug fix for memory buffer overrun/underrun detect for VC7.0, VC7.1, VC8.0.
  • Bug fix for instrumentation crash.

Version 4.09
Version 4.10 includes the following new functionality:

  • Addition of -- comment facility for -commandFile arguments.
  • Bug fix for datatype parsing.
  • Editor component maintenance updated.

Version 4.09
Version 4.09 includes the following new functionality:

  • Maintenance build.

Version 4.09
Version 4.09 includes the following new functionality:

  • Improvement to delete, delete [], realloc() and free() processing - more memory corruption conditions detected.

Version 4.08
Version 4.08 includes the following new functionality:

  • Objects tab - Objects of type "Unknown" are now represented (if file and line are known) as filename:line, for example: xmemory.cpp:40. This provides for better statistics, feedback and query facilities.
  • Bug fix for size display for SafeArrays when Group By Callstack enabled on Memory Tab.
  • Automatic file association.

Version 4.07
Version 4.07 includes the following new functionality:

  • Bug fix for load session on command line.
  • Bug fix for Reset launch history on launch application dialog.
  • Bug fix for filter dialog handle type combo box.
  • New context menu on Virtual tab, Data sub-tab.
  • Bug fix for thread detection on Windows 2000/Windows XP.

Version 4.05
Version 4.06 includes the following new functionality:

  • Editing options expanded to include Visual Studio.NET 2002, 2003, 2005, SCiTE editor.
  • Bug fix for possible crash when instrumenting Borland C++ memory allocations for BCC 5.0, BCC 6.0.
  • Bug fix for Memory Hotspot View Source Code Editing.

Version 4.05
Version 4.05 includes the following new functionality:

  • Bug fix for Unicode environment variables.
  • New diagnostic warning when LoadLibrary(Ex) fails. This can be useful for helping to diagnose why Memory Validator can successfully inject into a running application but the same application silently fails when launched by Memory Validator (this happens for a few very large applications with large numbers of DLLs).
  • Feature improvement - Extra information on Data sub-tab of the Virtual tab indicating Private/Mapped/Image status of each memory area.
  • New Feature - ability to export the information displayed on the Data sub-tab of the Virtual tab. Data can be exported in HTML, XML and CSV file formats.
  • Feature improvement - HTML and XML Session Export can now be filtered. Command line parameters for these features are provided:
    • -filterSessionObjectsHTML
    • -filterSessionObjectsXML
  • Forced prevention of loading of Window Blinds WBOCX.OCX module. If this module loads after Memory Validator has launched/attached to the target program WBOCX.OCX will crash. This is caused by a bug in WBOCX.OCX not expecting other hooks to be present. If Memory Validator attaches to the program after WBOCX.OCX has loaded then all works OK.
  • New Hooks for the following functions:
    • RegCloseKey
    • RegConnectRegistryA
    • RegConnectRegistryW
    • RegCreateKeyA
    • RegCreateKeyW
    • RegCreateKeyExA
    • RegCreateKeyExW
    • RegOpenCurrentUser
    • RegOpenKeyA
    • RegOpenKeyW
    • RegOpenKeyExA
    • RegOpenKeyExW
    • RegOpenUserClassesRoot
  • Bug fix for Displaying allocation and deallocations locations of objects on Objects tab (see context menu).

Version 4.04
Version 4.04 includes the following new functionality:

  • Bug fix for rare crash whilst scanning datatypes.
  • Addition to Allocation History settings for controlling purging of COM Reference counts.
  • Feature improvement - Addition of Class names for COM Reference counted objects.
  • Filtering improved to allow COM Reference Count filtering by COM object address.
  • Feature improvement - Session Comparison improved to allow the use of session filters and global filters during session comparison. Additional command line parameters added to support this from the command line:
    • -compareUseBaselineFilters
    • -compareUseGlobalFilters
  • Feature improvement - Addition of <EVENT id="nnn"> tag to XML Session Export and XML Session Compare Export reports to make XML parsing easier. This is an optional feature, the old file format is still available. Command line parameters for these features are also provided:
    • -flatXMLSessionExport
    • -flatXMLSessionCompareExport
  • New Feature - additional command line arguments to export the objects tab as HTML or XML.
    • -exportSessionObjectsHTML
    • -exportSessionLeakedObjectsHTML
    • -exportSessionObjectsXML
    • -exportSessionLeakedObjectsXML

Version 4.03
Version 4.03 includes the following new functionality:

  • Bug fix for heap walking code.

Version 4.01
Version 4.02 includes the following new functionality:

  • Bug fix for Memory Corruption Detection.

Version 4.01
Version 4.01 includes the following new functionality:

  • New warnings for .NET applications on Launch dialog.
  • Bug fix for filter definition dialog.
  • New command line options.
  • Improved command line help topics.

Version 4.00
Version 4.00 includes the following new functionality:

  • Addition of hooks for aligned_malloc, aligned_realloc, aligned_offset_malloc, aligned_offset_realloc, aligned_free. Supports Visual Studio 6, 7.0, 7.1, 8.0.
  • Removal of DLLs not to hook settings.
  • Improvement of Hooked DLLs settings to provide control over hooking and not hooking of DLLs.
  • Support for * wildcard for DLL specification on Hooked DLLs settings.
  • Addition of extra control on Hook Insertion settings.
  • Addition of new command line option -dllHookFile.

Version 3.99
Version 3.99 includes the following new functionality:

  • Bug fixes for filter user interface.
  • Help now supplied as HTML Help rather than WinHelp.

Version 3.98
Version 3.98 includes the following new functionality:

  • Instrumentation bug fix for hooking code containing computed unconditional jmp instructions - this affects uninitialised data detection, corrupt memory detection, Com Reference counting and a variety of other hooks.
  • Bug fix BSTR crash in certain situations for DCOM operations on Windows 2000 Service Pack 4.
  • StatusBar update.

Version 3.97
Version 3.97 includes the following new functionality:

  • Bug fix for hooking BSTRs - it seems that V3.95/V3.96 BSTR tracking code was service pack specific - on some machines the software worked as expected and other machines it did not.
  • Bug fix for Borland symbol handling crash.

Version 3.96
Version 3.96 includes the following new functionality:

  • Bug fix for fatal crash with watermarks during injection.
  • Bug fix for hooking BSTRs.

Version 3.95
Version 3.95 includes the following new functionality:

  • Bug fix for data display error no objects tab.
  • Bug fix for long command arguments stored in registry failing to load.
  • Bug fix for filters when exporting HTML/XML.

Version 3.94
Version 3.94 includes the following new functionality:

  • Bug fix for IMallocSpy hooks disobeying global Data Collection flag.
  • Misc bug fix release.

Version 3.93
Version 3.93 includes the following new functionality:

  • New column "CumTotal" representing Size x Cumulative Count for both Objects Types and Objects Statistics panes on Objects tab.
  • Updated running totals dialog.

Version 3.92
Version 3.92 includes the following new functionality:

  • Bug fix for fatal crash when parsing fails.

Version 3.91
Version 3.91 includes the following new functionality:

  • Feature improvement - Objects tab now displays object statistics for Threads and DLLs.
  • Objects tab changed - "Unknown" datatype is now displayed, Size % and Objects % are calculated in a more obvious manner.
  • Bug fix for rare (non-fatal) hooking error.
  • Support for tracking allocation/deallocation of BSTRs as part of DCOM transactions.

Version 3.90
Version 3.90 includes the following new functionality:

  • Bug fix for graphical display error on Virtual Timeline tab.
  • Bug fix for rare crash on statistics display of Objects tab.
  • Bug fix for (non fatal) memory corruption in Objects tab.

Version 3.89
Version 3.89 includes the following new functionality:

  • Archiving version update.
  • Bug fix for display diacritical characters and characters above 127.

Version 3.88
Version 3.88 includes the following new functionality:

  • UI improvement for DLLs to Hook settings dialog.
  • Bug fix for filtering files when instrumenting.

Version 3.87
Version 3.87 includes the following new functionality:

  • Bug fix redraw error on Virtual tab when resizing or changing icon size.
  • Improvement of user interface for Session Comparison dialog, new controls and layout.

Version 3.86
Version 3.86 includes the following new functionality:

  • Bug fix for crash.

Version 3.85
Version 3.85 includes the following new functionality:

  • Customer Request: Feature Addition: Memory Timeline display added to Virtual tab.
  • Feature improvement: objects view statistics has additional statistics.
  • Feature improvement: Find Memory dialog includes options for searching by sequence id.
  • Addition of hook for closesocket to balance socket and accept.
  • Injection feedback speedup.
  • Bug fix for mismatch between handle type and handle names - this only affected some handle types.
  • Bug fix for misreported leak of ATOMs allocated by AddAtom() and GlobalAddAtom().
  • Bug fix for crash on Address Query Dialog when working with COM Reference Counts.

Version 3.84
Version 3.84 includes the following new functionality:

  • Bug fix for crash serializing global filters.
  • Bug fix for crash on objects tab statistics view.

Version 3.83
Version 3.83 includes the following new functionality:

  • Feature improvement: splitter window added to hotspot view to enable in-situ source code viewing.
  • Feature improvement: splitter window added to objects view to provide more flexibility in viewing statistics.
  • Feature improvement: objects view filtering has been improved. Context menu has had filtering entries added.
  • Feature improvement: objects view has additional statistics and improved colour coding hints.
  • Bug fix: Fix for potential data corruption on objects view.
  • Misc user interface bug fixes.

Version 3.82
Version 3.82 includes the following new functionality:

  • Feature improvement - filters improved to provide filter by filename (without line number) and filter by directory.
  • Bug fix for crash when using filters.
  • New command line option -showErrorsWithMessageBox.

Version 3.81
Version 3.81 includes the following new functionality:

  • Bug fix for SafeArrays of BSTRs.

Version 3.80
Version 3.80 includes the following new functionality:

  • Bug fix for LoadLibrary() and FreeLibrary() hooks.
  • Bug fix for editor.
  • Bug fix register corruption in hook.

Version 3.79
Version 3.79 includes the following new functionality:

  • Customer Request: Feature Improvement: Export Session - optional export source code for context with callstack.
  • Improved source code parsing for type detection when template handling.
  • Bug fix for DestroyMenu when destroying a menu with submenus - the submenus were incorrectly reported as leaked unless and explicit Detach had been performed.
  • Bug fix for filters by file and line.
  • Bug fix for filters by handle type for some handle types.
  • Bug fix for MAP file handling.

Version 3.78
Version 3.78 includes the following new functionality:

  • Licensing bug fix - only affects evaluation versions.

Version 3.77
Version 3.77 includes the following new functionality:

  • Bug fix for working with omniORB.

Version 3.76
Version 3.76 includes the following new functionality:

  • Bug fix for CreateIoCompletionPort hook.
  • Bug fix installer.
  • Bug fix for licensing.
  • Bug fix for callstacks walking on Windows XP, SP2.
  • Removal of SE_SECURITY_NAME privilege requirement for working with services.
  • Updated help.
  • Rearranged some hooks between Misc and SysAllocHook to improve logical grouping of hooks.

Version 3.75
Version 3.75 includes the following new functionality:

  • Bug fix for "Group by callstack" on Memory and Analysis tabs.

Version 3.74
Version 3.74 includes the following new functionality:

  • Changed injection feedback mechanism to improve hooking.
  • Improved error reporting during hooking.

Version 3.73
Version 3.73 includes the following new functionality:

  • Context menu on tooltip support.

Version 3.72
Version 3.72 includes the following new functionality:

  • Bug fix for crash on Analysis tab when Allocation History settings allow purging.

Version 3.71
Version 3.71 includes the following new functionality:

  • Addition of User Privilege checks when accessing the Registry and setting debugging privileges.
  • Bug fix for rare crash in source code parsing.
  • Bug fix for Virtual tab.

Version 3.70
Version 3.70 includes the following new functionality:

  • Customer Request: Feature Improvement: Improved Virtual Tab. The Virtual Tab now has two sub-tabs. The first sub-tab provides the graphical display of previous versions of Memory Validator. The second sub-tab provides a new textual representation of the graphical data.

Version 3.69
Version 3.69 includes the following new functionality:

  • Support for Visual Studio 8.0 (.Net 2005) Beta.
  • Bug fix for divide by zero in Current Objects dialog.
  • Bug fix for filter manager dialog.

Version 3.68
Version 3.68 includes the following new functionality:

  • Addition of hook for monitoring GlobalFree() inside of CreateStreamOnHGlobal().
  • Support for CherryStone Software's Extremely Scalable Allocator (ESA) 1.3.x, a CRT memory allocator replacement.

Version 3.67
Version 3.67 includes the following new functionality:

  • Accelerator key handling improvement.
  • Source Code Editor selection improvement.

Version 3.66
Version 3.66 includes the following new functionality:

  • Bug fix for CreateProcessA() and CreateProcessW() hooks.

Version 3.65
Version 3.65 includes the following new functionality:

  • Bug fix for linking with API and memory leak detect from the API.

Version 3.64
Version 3.64 includes the following new functionality:

  • Source code editor improvements.
  • Bug fix for settings dialog.

Version 3.63
Version 3.63 includes the following new functionality:

  • Symbol load error messages on diagnostics improved - no FALSE positives. In addition information is provided detailing the type of symbols loaded.

Version 3.62
Version 3.62 includes the following new functionality:

  • Environment variable support on Launch Dialog and Launch Wizard has been improved.

Version 3.61
Version 3.61 includes the followFing new functionality:

  • Virtual tree control font bug fix.
  • Bug fix for data corruption crash in rare circumstances.

Version 3.60
Version 3.60 includes the following new functionality:

  • Virtual grid/tree control graphics bug fix.

Version 3.59
Version 3.59 includes the following new functionality:

  • Minor robustness improvement.

Version 3.58
Version 3.58 includes the following new functionality:

  • Removal of OutputDebugString messages from DllMain.
  • Adjustment of stack skipping depths for various functions.
  • Addition of user defined callstack symbol filtering.

Version 3.57
Version 3.57 includes the following new functionality:

  • Serialization bug fix.
  • Background Heap Scan Memory Corruption Detection improvement.
  • Removal of potential deadlock when bacground heap scan is enabled and any instrumentation option that requires code modification is enabled (uninitialised data detection, message map hooks, memory corruption detection, etc).

Version 3.56
Version 3.56 includes the following new functionality:

  • Memory Corruption Detection improvement.
  • Hotspot synchronization improvement.

Version 3.55
Version 3.55 includes the following new functionality:

  • Feature improvement: Hotspots tab now provides data for all allocations even when trace purging is enabled.
  • Feature improvement: Hotspots tab supports Custom, Fortran and Delphi allocations.
  • Speedup for removal of data from user interfaces during trace purging.
  • Improvement for Find Memory dialog box.
  • Bug fix for expanded nodes on analysis tab.
  • Bug fix for crash when purging data.

Version 3.54
Version 3.54 includes the following new functionality:

  • Improved coverage tab: Coverage can be performed even when discarding freed traces is enabled.
  • Bug fix for rare data scheduling crash.

Version 3.53
Version 3.53 includes the following new functionality:

  • Session export asks for confirmation of file overwrite.
  • Addition of shortcut keys for various menu options.

Version 3.52
Version 3.52 includes the following new functionality:

  • Settings updated on major user interfaces after loading settings.
  • Datatype parser improvements: Reduced mismatched allocation/deallocation FALSE error reports.
  • Bug fix for FALSE memory leak reporting when using CDO2000 components.
  • Improvements to prototype static CRT support, relating to Win32 heaps.

Version 3.51
Version 3.51 includes the following new functionality:

  • Feature improvement: Multiple Memory Validator sessions can run concurrently. Previously all data was logged by the first instance of Memory Validator, with all other instances only available for viewing saved sessions.
  • Feature improvement: New command line parameters for controlling session export in HTML and XML.
  • Modified Export Dialog to allow exporting of leaked data only.
  • Addition of new command line arguments to control exporting of HTML and XML data during regression testing.
  • Serialization bug fix.
  • Ctrl+C (Copy to clipboard) bug fix.
  • Allocation history bug fix.

Version 3.50
Version 3.50 includes the following new functionality:

  • Bug fix: Broken message map detector now works with Visual Studio 7.0 style message maps. Microsoft changed the enumeration order and number of values in message map enumeration. This meant that depending on which message map macros were run Memory Validator would work correctly or erroneously report an error against a valid message map entry.
  • Bug fix for crash on Memory Analysis View.

Version 3.49
Version 3.49 includes the following new functionality:

  • Bug fix: GetQueuedCompletionStatus().
  • Bug fix: for memory corruption.

Version 3.48
Version 3.48 includes the following new functionality:

  • Performance improvement: Memory Validator now uses very much less memory to store sessions. Large sessions (many millions of events) will notice dramatic memory usage reduction.
  • Performance improvement: Symbol fetching from stub improved.
  • Bug fix: Memory View when in "Group by Callstack" mode did not display totals at the top of the screen properly.

Version 3.47
Version 3.47 includes the following new functionality:

  • Bug fix: C++ member functions with variable argument lists did not track "this" correctly for "Deleted this Detection".
  • Bug fix: Kernel 32 hooks.
  • Minor user interface textual changes.

Version 3.46
Version 3.46 includes the following new functionality:

  • Times displayed in Local Time or UTC. Selectable on settings dialog.
  • Group by callstack feature improvement, works for automatic display updates as well as Refresh.
  • Performance improvement: Mismatched free/delete/delete[] error detection now consumes much less memory and is very much faster.

Version 3.45
Version 3.45 includes the following new functionality:

  • Bug fix for allocations by Windows XP themes dialog boxes.
  • Bug fix: Memory allocated using HeapAlloc in a Win32 Heap which is subsequently destroyed using HeapDestroy() is not shown as leaked (previously the heap would not be shown as leaked, but the memory would be shown as leaked). (This is an addition to the V3.44 work)

Version 3.44
Version 3.44 includes the following new functionality:

  • Bug fix: CRT HeapAllocs performed inside CRT allocations (malloc/new/etc) being shown as leaks when they are not leaks.
  • Bug fix: Memory allocated using HeapAlloc in a Win32 Heap which is subsequently destroyed using HeapDestroy() is not shown as leaked (previously the heap would not be shown as leaked, but the memory would be shown as leaked).

Version 3.43
Version 3.43 includes the following new functionality:

  • Bug fix for uninitialised data detection.
  • Additional support for Borland BPL files.

Version 3.42
Version 3.42 includes the following new functionality:

  • Improved uninitialised data detection. C++ objects on the stack are now correctly identified as having uninitialised data members.
  • New hooks for SysAllocStringByteLen, SysAllocStringLen, SysReAllocStringLen.

Version 3.41
Version 3.41 includes the following new functionality:

  • Bug fix for stack trace when Memory Corruption detection is enabled and memory/handles is allocated/deallocated inside DLLs callstack with no symbol data for any of the DLLs.

Version 3.40
Version 3.40 includes the following new functionality:

  • Bug fix for SafeArrayPutElement.
  • Bug fix for SafeArrayGetElement.
  • Bug fix for invalid handle passed to CloseHandle().

Version 3.39
Version 3.39 includes the following new functionality:

  • Bug fix for Memory Corruption detection.
  • Bug fix for Memory Validator API mvSetWatermark().
  • Bug fix for Memory Validator API mvSetBookmark().
  • Bug fix for Memory Validator API apiLeakDetectFromWatermark().

Version 3.38
Version 3.38 includes the following new functionality:

  • Addition of hook for DeregisterEventSource.

Version 3.37
Version 3.37 includes the following new functionality:

  • Customer Request: New Feature: Support for Large Address Aware applications on computers booted with the /3GB boot.ini switch.
  • Bug fix for BSTRs allocated in ActiveX and deallocated by Visual Basic.
  • Bug fix for crash in hotspot window.
  • Bug fix for custom hooks using GetProcAddress.
  • Bug fix for occasionally incorrect stack symbols.

Version 3.36
Version 3.36 includes the following new functionality:

  • Bug fix for export session dialog.
  • Bug fix for custom hooks reading/writing to/from registry/archive.

Version 3.35
Version 3.35 includes the following new functionality:

  • Custom Hooks: Support for hooking by ordinal.
  • Custom Hooks: Support for the AllocMore concept - as in MAPIAllocateMore.
  • Custom Hooks: User interface update, help manual update.
  • Multi-select on various file dialogs.

Version 3.34
Version 3.34 includes the following new functionality:

  • Customer Request: New Feature: Custom Hooks. You can now hook 3rd party and unsupported memory allocation and handle allocation functions and monitor these functions using Memory Validator.
  • Default Session bug fixes.
  • Updated help.
  • New tutorial section on Custom Hooks.

Version 3.33
Version 3.33 includes the following new functionality:

  • New Feature: Support for Borland C++ Builder 5.5 and free command line tools 5.5.
  • New Feature: Support for Borland Delphi.
  • Bug fix: Removal of hooks for DeleteFile - hooks incorrectly identified as handles.
  • Misc maintenance work.

Version 3.32
Version 3.32 includes the following new functionality:

  • Feature Improvement: Objects tab can display statistics for objects in all threads, or in a specific thread.

Version 3.31
Version 3.31 includes the following new functionality:

  • Bug fix for non-fatal error in thread-naming.

Version 3.30
Version 3.30 includes the following new functionality:

  • Feature improvement:Threads can be named using RaiseException. See help FAQ for details.
  • Bug fix for "Totals" column on Objects tab when including average scores.
  • Bug fix for Objects tab - "Totals" added to Sort combo box.
  • Bug fix for potential set watermark from stub crash.
  • Bug fix for potential set bookmark from stub crash.
  • Bug fix: Remove GetStdHandle() from list of hooks.
  • Bug fix for crash if file named "c" is present in Memory Validator directory.

Version 3.29
Version 3.29 includes the following new functionality:

  • GDI Object Viewer bug fix: Bitmaps selected into DCs now display correctly in the GDI Object Viewer.
  • Customer Request:Refresh when session load.

Version 3.28
Version 3.28 includes the following new functionality:

  • Customer Request:Refresh indicator (X) on Virtual tab to indicate update in progress.
  • Robustness improvements.
  • Bug fix for symbol fetching for Salford Software's FORTRAN 95.
  • Session loading/saving bug fix.

Version 3.27
Version 3.27 includes the following new functionality:

  • Customer Request:Launch Dialog and Launch Wizard provide environment variable support.

Version 3.26
Version 3.26 includes the following new functionality:

  • Feature improvement: GDI Viewer has resizable bitmap option.
  • Timestamps improvement: Reduced latency.
  • Bug fix for Novice mode SysAllocString settings.
  • Bug fix for message map hook error detection with Visual Studio .net (7.0 / 7.1).
  • Bug fix for Salford Software FORTRAN95 line number information.

Version 3.25
Version 3.25 includes the following new functionality:

  • Customer request: Support for Salford Software's FORTRAN 95 compiler is complete.
  • Customer request: Timestamp improvement: Timestamps now displayed in milliseconds or local time.
  • Enhanced symbol support.
  • Bug fix for analysis window: more data displayed.

Version 3.24
Version 3.24 includes the following new functionality:

  • Bug fix for stack corruption for very long symbol names in stub.
  • Bug fix for data synchronization bug on Virtual tab.
  • Bug fix for filters.

Version 3.23
Version 3.23 includes the following new functionality:

  • Bug fix for filters.

Version 3.22
Version 3.22 includes the following new functionality:

  • Customer request: Mouse wheel support for editing component.
  • Addition of filename and line number support for Salford Software's FORTRAN95.

Version 3.21
Version 3.21 includes the following new functionality:

  • Symbol handling bug fix.

Version 3.20
Version 3.20 includes the following new functionality:

  • Customer Request: Configurable loading of GDI Stub into application.
  • Customer Request: Support for MetroWerks CodeWarrior C++ compiler.
  • Bug fix for filtering logic in special filter.
  • Updated help file.

Version 3.19
Version 3.19 includes the following new functionality:

  • Bug fix for crash on Pages tab.
  • Bug fix for XML export malformed XML.
  • User interface behaviour change. "Minimized" application will be restored to full screen size if user desires.

Version 3.18
Version 3.18 includes the following new functionality:

  • Memory usage reduction for Memory tab.
  • IIS Tools menu is now enabled on all systems, rather than just server systems.
  • Minor bug fixes.
  • DbgHelp.dll upgraded to DbgHelp 6.1

Version 3.17
Version 3.17 includes the following new functionality:

  • Bug fix for crash when copying filters internally (unrelated to V3.16, V3.15)

Version 3.16
Version 3.16 includes the following new functionality:

  • Bug fix for "Dlls to hook" when parent DLL is filtered out and child DLLs are filterd in.
  • Feature improvement: DestroyWindow is more efficient.

Version 3.15
Version 3.15 includes the following new functionality:

  • Bug fix for "Filter by DLL".

Version 3.14
Version 3.14 includes the following new functionality:

  • Maintenance update for compatibility with Coverage Validator, Performance Validator and other products using the enhanced editor component.
  • Bug fix for rare race-condition crash when a session is deleted.

Version 3.13
Version 3.13 includes the following new functionality:

  • Bug fix for code rewriting hooks.
  • Bug fix for crash if editing definitions damaged in registry.
  • Bug fix for some user interface option states after loading a previously saved session. These options had been enabled when they should have been disabled.

Version 3.12
Version 3.12 includes the following new functionality:

  • Bug fix for handling symbols with partial symbol information (Salford FORTRAN95 compiler support).

Version 3.11
Version 3.11 includes the following new functionality:

  • Support for a new symbol collection method. The current method sometimes fails to acquire file and line information in services, for example inside IIS. The new method acquires symbols in the stub (in your application) and sends them to the UI. We also employ caching of the symbol data to improve performance on subsequent runs. You can choose to use the original symbol collection method, the new method, and to use caching or not.
  • New "IIS Tools" menu, which is enabled on NT Server systems. This menu provides useful helper actions for controlling IIS, SMTP, NNTP, FTP services when working with IIS. This means a software developer will not need to keep using the command prompt to type "net start ...." etc.
  • Customer request: Show GDI Objects context menu on Objects view.
  • Inject dialog remembers the name of last injected process and pre-selects this process the next time the Inject dialog is used.
  • Customer request: Experimental support for Salford Software's FORTRAN 95 compiler.

Version 3.10
Version 3.10 includes the following new functionality:

  • Bug fix for working with services. Configuration data for working with services is now stored under HKEY_USERS\.DEFAULT. Previously services worked with the default Memory Validator settings if the service did not run as a user account. With the bug fix, the service can run as System account and will access the configuration data correctly.
  • Updated help to include information about working with Internet Information Services (IIS).

Version 3.09
Version 3.09 includes the following new functionality:

  • Customer request: Display ASCII/Unicode text at right hand side of Show Data At... window.
  • Customer request: Allow direct query by address on memory window displaying results on Analysis tab.
  • New feature: Allow direct query by address on memory window displaying results on Query Address dialog. Accessible from the context menu, Find submenu on the Memory tab.
  • New feature: Allow direct query by object type on memory window displaying results on Analysis tab. Accessible from the context menu, Find submenu on the Memory tab.
  • New feature: Allow direct query by object type on memory window displaying results on Query Object dialog. Accessible from the context menu, Find submenu on the Memory tab.
  • Updated help manual.
  • Bug fix for failure to find PDB files in certain circumstances.

Version 3.08
Version 3.08 includes the following new functionality:

  • Bug fix for high speed callstack walk implementation when working with IIS and other highly multithreaded applications.

Version 3.07
Version 3.07 includes the following new functionality:

  • Performance improvement for large event processing. Approx 50% less data transferred between stub and user interface. Approximately 30% speed improvement for sample 1,000,000 allocation loop.
  • Data transfer implementation change. This provides an increase in data throughput and also sidesteps the problems that some users have with slow named pipes on Windows XP.
  • Performance improvement for all callstack collections.
    • The 1,000,000 allocation loop test is 4 times faster.
    • The 1,000,000 allocation and deallocation loop test is 10 times faster.
    • For smaller datasets the improvement is about between 8 times to 3 times faster, depending upon the allocation characteristics.
  • Performance improvement for memory buffer error detect. Order of magnitude improvement on our test applications (20.9 times faster on 350,000 line test application).

Version 3.06
Version 3.06 includes the following new functionality:

  • New Feature: Additional columns on object tab. This was a customer request.
  • New Feature: Custom editor support. This was a customer request.
  • New Feature: Optional small filter dialog to allow Memory Validator to be used on embedded devices. This was a customer request.
  • Fragmentation statistics on Page tab - calculation improvement.
  • New User Interface tab on settings dialog.
  • New Data Transfer tab on settings dialog.
  • Helper application for setting advanced data transfer settings. Advanced Users Only.
  • Bug fix: Rare crash in UI.
  • Bug fix: Objects tab populated after serialize in.
  • Bug fix: Handle allocation types lost their "leaked" status after serialize in.

Version 3.05
Version 3.05 includes the following new functionality:

  • Bug fix: Quoted arguments on commandline specified with -arg are now passed to target program with quotes.
  • Bug fix: Prevent deadlock under specific circumstances when using certain DLLs.
  • Misc user interface changes.
  • Misc maintenance changes.

Version 3.04
Version 3.04 includes the following new functionality:

  • Feature improvement: svlMemoryValidatorStubLib.lib can be linked to DLLs as well as EXEs.
  • Speedup: When data is displayed on various displays, data processing (and post processing) speed has been improved.
  • Helper application included in install directory to allow configuration of data transfer from stub to user interface.
  • Bug fix: Prevent rare deadlock inside time() during attach.

Version 3.03
Version 3.03 includes the following new functionality:

  • New Feature: Re-Launch button. This was a customer request.
  • New toolbar icons, including disabled state icons for 32x32 sizes.
  • Performance improvement. Some applications allocate and deallocate data many times, leading to millions of data items being processed, even though very little memory is consumed by the application. This area has been improved allowing Memory Validator to process much more information.

Version 3.02
Version 3.02 includes the following new functionality:

  • Bug fix for Pages tab when displaying from an archived session.

Version 3.01
Version 3.01 includes the following new functionality:

  • Improved terminate application procedure.

Version 3.00
Version 3.00 includes the following new functionality:

  • Context menu help for items on Memory tab. This was a customer request.
  • Leak summary at top of Memory tab. This was a customer request.
  • Context menu on Objects tab. Options allow query based on object type with results displayed on the analysis tab. This was a customer request.
  • Addition to GDI viewing: Ability to view HMENU (menu) and HWND (window) objects. This was a customer request.
  • New toolbar icons.
  • Updated help for above items.
  • Bug fix for search icon ("binoculars") when using Analysis tab.
  • Bug fix for crash if Memory Validator is shutting down and the global hook detection system identifies a global hook loading at the same time.
  • Bug fix for incorrect behaviour inside SafeArrayPutElement().

Version 2.99
Version 2.99 includes the following new functionality:

  • Bug fix for Filter Manager user interface.
  • Bug fixes for Filter handling.
  • Customer request: Ability to filter a range of traces. If a range is selected and the filter type is "instant" or "temporary", the whole range of traces has a filter added for each entry.

Version 2.98
Version 2.98 includes the following new functionality:

  • Subtle change to the logic for display of memory errors on Memory tab.
  • Bug fix for COM Reference count checking.
  • Bug fix for symbol handling.

Version 2.97
Version 2.97 includes the following new functionality:

  • New Show GDI Objects... option on context menu for Memory tab. This option allows you to view the GDI object in your application. This is a customer requested feature.
  • New implementation for Uninitialised data hooking. New implementation creates less FALSE positives, and also hooks more constructors and destructors.
  • Addition of "COM Objects..." query on the Analysis tab.
  • Improved settings dialog.
  • Removal of superfluous user interface controls for COM and uninitalised data hooking.
  • Removal of speculative leak detect feature. The feature works correctly, but is unrealistically slow with large datasets, rendering the feature unusable. A modified form of this feature will be reintroduced when we have identified how to improve the speed of this feature.
  • Resource fix for message dialog for in-place-leak detect dialog.

Version 2.96
Version 2.96 includes the following new functionality:

  • Bug fix for COM Reference hooking. New implementation using DbgHelp.dll rather than relying on class vtable structure. New implementation is more robust and has the added bonus that you only track interfaces/classes for which you have debug information, which means you don't track interfaces/classes that you don't control.

Version 2.95
Version 2.95 includes the following new functionality:

  • Minor improvement to global hook interceptor.

Version 2.94
Version 2.94 includes the following new functionality:

  • New global hook interceptor to stop global hooks intercepting the Memory Validator user interface. Some global hooks are not well written and cause problems. This feature was added after we spent 2 weeks looking for a problem in Memory Validator, only to find the root of the problem was a 3rd party global hook.

    Memory Validator will now detect global hooks trying to load and ask the user for permission to load the global hook.

  • Various minor bug fixes.

Version 2.93
Version 2.93 includes the following new functionality:

  • Maintenance build.

Version 2.92
Version 2.92 includes the following new functionality:

  • Maintenance build.

Version 2.91
Version 2.91 includes the following new functionality:

  • Maintenance build.

Version 2.90
Version 2.90 includes the following new functionality:

  • Feature improvement: Services can now be attached to using the "inject" method and "wait for application" methods. You do not need to use the Memory Validator API to monitor services.

Version 2.89
Version 2.89 includes the following new functionality:

  • Bug fix:Map file only used when date matches the DLL.
  • Bug fix:Hooking algorithm bug fix for memory corruption and "deleted this" pointer detection.

Version 2.88
Version 2.88 includes the following new functionality:

  • Memory Corruption detection bug fix. Previously only worked correctly for MSDEV 6.0 Debug and Release. Now also works correctly for Visual Studio .Net/7.0, Visual Studio .Net/7.1 Debug. A bug fix for the V7.0/V7.1 release mode memory will be time consuming to create, and will be released at a future date.

Version 2.87
Version 2.87 includes the following new functionality:

  • Updated help and resource files for Visual Studio .Net 2003, (Version 7.1) CRT.

Version 2.86
Version 2.86 includes the following new functionality:

  • Bug fix for LoadLibraryEx() hook. Found whilst investigating AutoCAD ARX files.
  • Support for Visual Studio .Net 2003, (Version 7.1) CRT.

Version 2.85
Version 2.85 includes the following new functionality:

  • Improved performance of tree control.
  • Improved function and line hooking algorithms.

Version 2.84
Version 2.84 includes the following new functionality:

  • Internal maintenance build.

Version 2.83
Version 2.83 includes the following new functionality:

  • Fix for entry point bug in DLLs with Memory Corruption Detection.
  • Fix for recursive calls into MSVCRT.DLL with Memory Corruption Detection.
  • Addition code for mvLicense.exe and Memory Validator to cope with Windows File Protection preventing the upgrade of DBGHELP.DLL to a more recent version than the default installed for Windows 2000.

Version 2.82
Version 2.82 includes the following new functionality:

  • Addition of functionality to detect the calling of C++ object functions for objects on the CRT heap that have been destroyed.
  • Improvements to function hooking algorithms for Memory Corruption Detection, Uninitialised data, COM Reference counting.
  • Potential deadlock during advanced hooking algorithms, prevented.
  • Improved detection of functions in code sections. Previous algorithm had the potential to incorrectly identify data in code blocks as code. New algorithm use new PDB API to correctly identify functions.
  • Bug fix for broken handle leak detection for MSVCRT(D).DLL.

Version 2.81
Version 2.81 includes the following new functionality:

  • We have reorganised how certain allocations are handled so that the heaps underlying CRT allocations and the virtual allocations underlying heap allocations cannot interact with each other. The previous design should have prevented any interaction, we have no knowledge of any adverse interaction with the previous design. The new design improves performance and guarantees no interaction between the allocation tracking for different allocators.
  • Data processing for HeapAlloc() family of allocators modified to improve performance and prevent potential address collision with addresses from VirtualAlloc().
  • Data processing for User Defined family of allocators modified to improve performance and prevent potential address collision with addresses from VirtualAlloc().
  • Data processing for VirtualAlloc(), VirtualAllocEx() family of allocators modified to improve performance and prevent potential address collision with addresses from other allocators.
  • Data processing for VirtualAllocVlm() improved.

Version 2.80
Version 2.80 includes the following new functionality:

  • Bug fix for function re-writing hooks. This bug fix may improve uninitialised data hooks, COM reference counting hooks and memory corruption detection hooks. This bug fix was found whilst working on our Crash Validator product.

Version 2.79
Version 2.79 includes the following new functionality:

  • More Robustness improvement for function and line hooking.

Version 2.78
Version 2.78 includes the following new functionality:

  • Robustness improvement for function and line hooking.
  • Performance improvement for processing CoTaskMemAlloc, MiscAlloc and IMalloc family of allocations.

Version 2.77
Version 2.77 includes the following new functionality:

  • Bug fix for off-by-one error on Objects tab. Symptoms of this are random crashes or Memory Validator simply disappearing with no warning whilst updating the display on the objects tab. This appear to be quite a rare to see and is data specific.
  • Performance improvement for processing SysAllocHook, BSTR and Variant family of allocations.

Version 2.76
Version 2.76 includes the following new functionality:

  • Modified internal routines in the stub to increase robustness when handling VariantClear().

Version 2.75
Version 2.75 includes the following new functionality:

  • Include Microsoft STL support DLL (MSVCPnn(D).DLL) for tracking memory allocations.

Version 2.74
Version 2.74 includes the following new functionality:

  • Addition of new functionality: Memory Corruption Detection. This includes new display mechanisms for data collected about memory corruption, two new settings tabs to control the memory corruption detection, options for filtering on memory corruption detection.

Version 2.73
Version 2.73 includes the following new functionality:

  • Bug fix for ImageList_Destroy() hook.
  • 2 Bug fixes for shutdown code for console apps.
  • Improved map file handling.
  • Improved symbol handling for MFC DLLs - some users were not getting symbols for MFC DLLs. This was dependent on many factors including the O.S. and dll version. MFC symbols are now always sourced from the application under test, resulting in accurate symbols all the time.
  • For the case where MFC DLLs generate OrdinalNNN symbols, these symbols are automatically mapped via the .def files installed with Dev Studio, to generate symbol names even when the PDB files cannot supply them.
  • Various internal bug fixes

Version 2.72
Version 2.72 includes the following new functionality:

  • Implementation change for SafeArrayGetElement() hook .
  • New hook:SafeArrayPutElement().
  • New hook:VariantChangeType().
  • New hook:VariantChangeTypeEx().
  • New warning dialog associated with IMallocSpy options. Help information relating to IMallocSpy updated.

Version 2.71
Version 2.71 includes the following new functionality:

  • Fix redraw bug in tree control.
  • Fix selection bug that prevents loading of source code into tree control.

Version 2.70
Version 2.70 includes the following new functionality:

  • Objects tab, sorting can now be performed by clicking on column headers as well as using the combo box.
  • Improved datatype parsing for detecting allocation/deallocation mismatches. The new datatype parsing provides less FALSE positives.

Version 2.69
Version 2.69 includes the following new functionality:

  • Bug fix for data tracking of data in VT_RECORD user defined types.
  • Addition of hooks for VariantCopy() and VariantCopyInd().

Version 2.68
Version 2.68 includes the following new functionality:

  • Installer (mvLicense.exe) does not reset user settings when upgrading Memory Validator.
  • When performing "in-place" memory and handle leak detection, information dialog can be configured not to display.
  • Miscellaneous display improvements relating to filenames and line numbers
  • Can't find source file, bug fix for unknown file always fetching same file regardless of module.

Version 2.67
Version 2.67 includes the following new functionality:

  • Bug fix for BSTRs in SAFEARRAY when contents are destroyed using SafeArrayDestroyData() or SafeArrayDestroy(). The bug was that the BSTRs in the array where shown as leaks, when in reality they were cleaned up.

Version 2.66
Version 2.66 includes the following new functionality:

  • Bug fix for move filter dialog when no session.

Version 2.65
Version 2.65 includes the following new functionality:

  • Bug fix for the global hook rejection filter on LoadLibrary(Ex). For the cases where the filter prevented the loading of a DLL, it was possible for some registers to be corrupted, resulting in unpredictable application behaviour.
  • Bug fix for hooking CRT operator delete [].

Version 2.64
Version 2.64 includes the following new functionality:

  • Bug fix for SAFEARRAYs inside VARIANTs. Prior to this bug fix, a SAFEARRAY inside a variant (COleSafeArray) may have shown up (incorrectly) as a memory leak.
  • Bug fix for PDB error message handling.

Version 2.63
Version 2.63 includes the following new functionality:

  • Speed up for virtual tree control deleting rows.
  • Extra error reporting relating to symbol tracking on diagnostic tab.
  • Internal minor bug fixes.
  • Bug fix for "automatically add to PDB search path". Paths are reset to match the file settings dialog/wizard prior to launching/injecting/waiting on an application. Paths are then rediscovered. This means that for situations where you have multiple versions of the same DLL in your development environment, the correct paths to your PDBs are used, rather than paths to PDBs in potentially other directories on your system than the particular DLL in use at the time.
  • Bug fix for SAFEARRAYs of BSTRs, these were not correctly accounted for when the SAFEARRAY was passed to ::VariantClear(). This resulted in BSTRs incorrectly being marked as leaked when they were not leaked. Typically this manifests when using COleSafeArray to hold BSTRs.
  • New hook for SafeArrayGetElement(), so that BSTRs returned from a SAFEARRAY are tracked.
  • Default for hooking delay loaded functions is now TRUE.
  • Default for hooking delay loaded DLLs is now TRUE.
  • New messages on diagnostic tab when delay loaded functions are not hooked due to user settings.

Version 2.62
Version 2.62 includes the following new functionality:

  • Misc. internal improvements.

Version 2.61
Version 2.61 includes the following new functionality:

  • Customer request to enable/disable allocator mismatch detection. See Error Report tab on Settings Dialog.
  • Bug fix for editing component.
  • Refinement of bug fix in V2.60 (special case).

Version 2.60
Version 2.60 includes the following new functionality:

  • Bug fix for calling GetFileVersionInfoSizeW() on Windows 2K and Windows XP. Windows NT systems do not suffer from this bug. Symptoms of the bug are applications failing to start properly (long pause then disappear or crash) on Windows 2000 and Windows XP.

Version 2.59
Version 2.59 includes the following new functionality:

  • Addition of various CRT hooks for the global namespace. In MFC applications these functions would not normally be called, as the MFC equivalent would be called. For applications not using MFC, memory allocated via these functions would not be tracked. Version 2.59 fixes this.
    • Visual C++ 4.2: global namespace ::operator new(unsigned int size, int blockType, char const *filename, int line); (debug only)
    • Visual C++ 6.0: global namespace ::operator new(unsigned int size, int blockType, char const *filename, int line); (debug only)
    • Visual C++ 7.0: global namespace ::operator new(unsigned int size, int blockType, char const *filename, int line); (debug only)
    • Visual C++ 7.0: global namespace ::operator new [] (unsigned int size);
    • Visual C++ 7.0: global namespace ::operator new [] (unsigned int size, int blockType, char const *filename, int line); (debug only)
    • Visual C++ 7.0: global namespace ::operator delete [] (void *ptr);

Version 2.58
Version 2.58 includes the following new functionality:

  • Bug fix for Visual Studio .Net dllMainHook failure to hook bug.

Version 2.57
Version 2.57 includes the following new functionality:

  • Visual Studio .Net solution files for memoryValidatorExample.exe.
  • New version of svlMemoryValidatorStubLib.lib that is not statically linked to the CRT.

Version 2.56
Version 2.56 includes the following new functionality:

  • Fix configuration error for example project teststak.dsp Debug configuration (memoryValidatorExample.exe).

Version 2.54
Version 2.55 includes the following new functionality:

  • Bug fix for memory buffer error detect.

Version 2.54
Version 2.54 includes the following new functionality:

  • New stack trace display on MFC Message Map stack corruption dialog.
  • Global Hook DLL detection.
  • Global Hook DLL unloader.
  • Bug fix for Filter Dialog broken tab order.
  • Bug fix for help topics on settings dialog.
  • Bug fix for "Dlls not to hook" functionality.
  • Bug fix for "Dlls to hook" functionality.

Version 2.52
Version 2.53 includes the following new functionality:

  • Bug fix for crash in scan for datatypes.

Version 2.52
Version 2.52 includes the following new functionality:

  • Automatic detection of incorrect function signatures for MFC message map functions. This allows detection of the functions that work in DEBUG code but crash in RELEASE code with a corrupt stack.

Version 2.50
Version 2.51 includes the following new functionality:

  • Bug fix for potential (but rare) deadlock on diagnostics tab.
  • Bug fix for memory corruption when copying data to the clipboard.
  • Corrected text in a warning message displayed when changing Speculative Delete settings.

Version 2.50
Version 2.50 includes the following new functionality:

  • New user interface for the settings dialog.

Version 2.49
Version 2.49 includes the following new functionality:

  • Removal of some incorrect entries on the Coverage tab.
  • Addition of warning on the Coverage tab when discarding of freed traces enabled.
  • Minor user interface improvements.

Version 2.48
Version 2.48 includes the following new functionality:

  • Performance improvement for uninitialised data detection. The new algorithm detects much fewer FALSE positives when detecting uninitialised data.
  • Bug fix for crash on Analysis tab memory reuse query when no data found.
  • Robustness improvement for all Analysis tab queries.
  • Internal data integrity improvement.

Version 2.47
Version 2.47 includes the following new functionality:

  • Bug fix for Visual Studio (7.0) .Net when working with Release CRT.
  • Misc user interface fixes.
  • Syntax coloured editing component line collapsing bitmap correction.

Version 2.46
Version 2.46 includes the following new functionality:

  • Bug fix for filter manager user interface.
  • Redraw bug fix for syntax coloured editing component.

Version 2.45
Version 2.45 includes the following new functionality:

  • Performance improvement for in-place memory leak and handle leak detect.
  • Bug fix for user interface crash on Analysis tab.

Version 2.44
Version 2.44 includes the following new functionality:

  • Bug fixes for MAP and BSC file handling.
  • Bug fix for Map file parsing error when Map file lines > 1022 characters in length. This is not the same bug that was fixed in Version 2.43.

Version 2.43
Version 2.43 includes the following new functionality:

  • Miscellaneous bug fixes.
  • Bug fix for Map file parsing error.

Version 2.42
Version 2.42 includes the following new functionality:

  • New filtering options added at customer request. Data can now be filtered using a variety of size related options.
  • Various filtering user interface bug fixes.
  • Uninitialised data hook bug fix.
  • Compiler optimizer bug fixes.
  • Objects View bug fix - populated after session load.
  • Objects View no long flashes when updated.
  • Redraw bug fixes for Pages View and Objects View.

Version 2.41
Version 2.41 includes the following new functionality:

  • Bug fix for rare crash in source code editing component.
  • Bug fix for launch wizard arguments and directory control. The launch dialog was unaffected by this bug.
  • Performance improvement for diagnostic window.
  • Miscellaneous bug fixes.
  • Prevent multiple inject progress dialogs from remaining on screen.

Version 2.40
Version 2.40 includes the following new functionality:

  • File selection on the files tab of the display settings dialog and wizard has been changed to multiple selection. This change is due to customer feedback.
  • Improvements to selection handling on launch wizard and launch dialog.
  • Improvements to selection handling on attach wizard and attach dialog.
  • Improvements to selection handling on wait wizard and wait dialog.

Version 2.39
Version 2.39 includes the following new functionality:

  • Improved uninitialised data detection.
  • Miscellaneous bug fixes.

Version 2.38
Version 2.38 includes the following new functionality:

  • Bug fix for crash in stub when a DLL's version information does not contain a company name.
  • Improved hooking for delay loaded functions. This fixes a bug that only manifested when Memory Buffer Hooking was enabled and appropriate delay loaded DLLs were used.
  • Improved buffer overflow/underflow detection accuracy.

Version 2.37
Version 2.37 includes the following new functionality:

  • Addition of 4 new hooks for tracking timer queues to complement the existing hook CreateTimerQueue, and 1 hook for tracking IO Completion Port status. Added as a result of a customer request.
    • DeleteTimerQueue
    • DeleteTimerQueueEx
    • CreateTimerQueueTimer
    • DeleteTimerQueueTimer
    • GetQueuedCompletionStatus

Version 2.36
Version 2.36 includes the following new functionality:

  • F1 key on all dialogs displays appropriate help for that dialog.
  • Bug fix for running totals dialog totals.

Version 2.35
Version 2.35 includes the following new functionality:

  • Speculative delete information improved. The location at which the potential memory leak occured is now displayed as well as the location of the allocation of the leaked object.
  • In-place memory leak detector memory footprint improvement and speed improvement. Now uses less memory and takes less time to initialise the search. A progress dialog is also provided.
  • Bug fix for rare crash in stub.

Version 2.34
Version 2.34 includes the following new functionality:

  • Addition of a high speed in-place memory leak and handle leak detector. You can now detect potential memory leaks and potential handle leaks in your application as your application executes. This functionality complements the existing end-to-end memory leak and handle leak analysis.
  • Addition of 138 new functions being tracked, this allows better tracking of many memory allocations. The full list is shown below.
    • AccessibleObjectFromPoint
    • AccessibleObjectFromEvent
    • SafeArrayCreate
    • SafeArrayCreateEx
    • SafeArrayCreateVector
    • SafeArrayCreateVectorEx
    • SafeArrayDestroy
    • SafeArrayAllocData
    • SafeArrayDestroyData
    • SafeArrayAllocDescriptor
    • SafeArrayAllocDescriptorEx
    • SafeArrayDestroyDescriptor
    • SafeArrayLock
    • SafeArrayUnlock
    • SafeArrayAccessData
    • SafeArrayUnAccessData
    • GetEnvironmentStringsA
    • GetEnvironmentStringsW
    • FreeEnvironmentStringsA
    • FreeEnvironmentStringsW
    • GetExplicitEntriesFromAclA
    • GetExplicitEntriesFromAclW
    • GetSecurityInfo
    • GetNamedSecurityInfo
    • BuildSecurityDescriptorA
    • BuildSecurityDescriptorW
    • LookupSecurityDescriptorPartsA
    • LookupSecurityDescriptorPartsW
    • SetEntriesInAclA
    • SetEntriesInAclW
    • ConvertStringSidToSidA
    • ConvertStringSidToSidW
    • ConvertSidToStringSidA
    • ConvertSidToStringSidW
    • ConvertStringSecurityDescriptorToSecurityDescriptorA
    • ConvertStringSecurityDescriptorToSecurityDescriptorW
    • ConvertSecurityDescriptorToStringSecurityDescriptorA
    • ConvertSecurityDescriptorToStringSecurityDescriptorW
    • FormatMessageA
    • FormatMessageW
    • CryptDecodeObjectEx
    • CryptEncodeObjectEx
    • CryptGetKeyIdentifierProperty
    • CryptUnprotectData
    • SetupGetFileCompressionInfoA
    • SetupGetFileCompressionInfoW
    • MprAdminGetErrorString
    • ResUtilDupString
    • ResUtilExpandEnvironmentStrings
    • ResUtilFindBinaryProperty
    • ResUtilFindExpandSzProperty
    • ResUtilFindExpandedSzProperty
    • ResUtilFindMultiSzProperty
    • ResUtilFindSzProperty
    • ResUtilGetExpandSzValue
    • ResUtilSetExpandSzValue
    • ResUtilSetMultiSzValue
    • ResUtilSetSzValue
    • ResUtilSetBinaryValue
    • ResUtilGetSzValue
    • ResUtilGetMultiSzValue
    • ResUtilGetBinaryValue
    • CMCreateDeviceLinkProfile
    • CMCreateProfileW
    • CMCreateProfile
    • CreateDeviceLinkProfile
    • CreateProfileFromLogColorSpace
    • CommandLi
    • NetoArgvW
    • StringFromCLSID
    • StringFromIID
    • ReadFmtUserTypeStg
    • CoQueryProxyBlanket
    • CoQueryClientBlanket
    • CoQueryAuthenticationServices
    • SHStrDupA
    • SHStrDupW
    • StrRetToStrA
    • StrRetToStrW
    • AllocateUserPhysicalPages
    • FreeUserPhysicalPages
    • AllocConsole
    • FreeConsole
    • AllocateAndInitializeSid
    • FreeSid
    • FreeEncryptionCertificateHashList
    • QueryUsersOnEncryptedFile
    • QueryRecoveryAgentsOnEncryptedFile
    • NetApiBufferAllocate
    • NetApiBufferReallocate
    • NetApiBufferFree
    • NetSessionGetInfo
    • NetStatisticsGet
    • NetUseEnum
    • NetUserGetGroups
    • NetUserGetInfo
    • NetUserGetLocalGroups
    • NetUserModalsGet
    • NetWkstaGetInfo
    • NetWkstaUserEnum
    • NetWkstaUserGetInfo
    • NetServerTransportEnum
    • NetSessionEnum
    • NetDfsGetInfo
    • NetGroupEnum
    • NetGroupGetInfo
    • NetGroupGetUsers
    • NetQueryDisplayInformation
    • NetShareGetInfo
    • NetRemoteTOD
    • NetServerDiskEnum
    • NetServerEnum
    • NetServerEnumEx
    • NetConnectionEnum
    • NetServerGetInfo
    • NetDfsEnum
    • NetShareEnum
    • NetShareEnumSticky
    • NetReplImportDirEnum
    • NetReplImportDirGetInfo
    • NetReplGetInfo
    • NetReplExportDirEnum
    • NetReplExportDirGetInfo
    • NetMessageNameEnum
    • NetMessageNameGetInfo
    • NetLocalGroupGetMembers
    • NetLocalGroupGetInfo
    • NetGetAnyDCName
    • NetWkstaTransportEnum
    • NetFileGetInfo
    • NetGetJoinInformation
    • NetLocalGroupEnum
    • NetUseGetInfo
    • NetFileEnum
    • NetGetDCName
    • NetGetJoinableOUs
    • NetScheduleJobEnum
    • NetScheduleJobGetInfo
    • NetDfsGetClientInfo
  • Find Memory Dialog, bug fix when searching by object type for object types with spaces in the object type name, such as "OLE Safe Array"
  • Stop Application changed to Abandon Application to prevent user confusion.
  • The API library svlMemoryValidatorStubLib.lib has had the MFC dependency removed.
  • The default for Discard stack traces when freed has been changed from Off to On
  • .
  • Filter file format changed. Delete all *.mvf files.
  • Improved hook for LoadImage(), data is not reported when LR_SHARED flag present.
  • Improved handle reporting. Data concerning the internal workings of Microsoft DLLs is not reported, only handles that are returned to MFC, third party and application modules are reported.
  • Bug fix and performance improvement for speculative memory leak detect mode 'validator'
  • Bug fix for race condition when discard stack freed traces is enabled and number to keep is 0.
  • Uninitialised data reporting - less data reported for the same object, related reports are combined to provide more accurate reports for classes inherited from other classes.

Version 2.33
Version 2.33 includes the following new functionality:

  • User defined objects and user defined reference counts included on Objects tab.
  • User defined objects and user defined reference count addresses included in Memory Search dialog.
  • Leaked memory that is not CRT memory is now shown in yellow just like CRT memory.
  • Bug fix for user defined objects and reference count display on Memory tab.
  • Bug fix for crash on Memory tab.

Version 2.31
Version 2.32 includes the following new functionality:

  • New functionality to group data by callstack. This is available for the Memory tab and the Analysis tab.
  • New Collapse All button on the Memory tab.
  • New Expand All button on the Memory tab.

Version 2.31
Version 2.31 includes the following new functionality:

  • Updated icon information in help file.
  • Save session progress dialog now provides better progress feedback.
  • Maintenance bug fixes.
  • Fix message processing heap manager "out of memory error" crash.
  • Bug fixes for inject and wait for process dialogs. Initial display did not match radio buttons. Sorting is now case-insensitive.

Version 2.29
Version 2.30 includes the following new functionality:

  • New hook for VariantClear() to allow detection of BSTRs deallocated using CComVariant.Clear() and ::VariantClear().
  • Change to wizards and dialogs for launch, inject and wait. These dialogs now allow the full path or the executable image name to be displayed. The inject dialog allows sorting by column.
  • Bug fix for running totals dialog display of negative numbers as positive numbers.
  • Bug fix for race condition caused by Windows Message Processing when injecting into application.
  • Bug fix for crash on hotspot display when threshold value not set to "All".

Version 2.29
Version 2.29 includes the following new functionality:

  • Addition of detection of memory leaks for the SysAllocString() family of functions. These functions allocate, reallocate and deallocate BSTR objects. All main interfaces, options dialogs and allocator alias facilities have been modified to accomodate SysAllocString.
  • New popup menu option on pages tab. Edit Source Code. This is consistent with other user interface.
  • Improved data display on memory tab. Display of data is more consistent with display tab settings.
  • Improved module load and unload handling in stub.
  • Filtering code implementation change. Recursion has been replaced with looping to avoid exhausting stack space when filtering long callstacks.
  • Improved memory re-use detection accuracy and speed on the Analysis page.
  • Options for the display of reallocated data chains to improve speed by displaying shorter reallocation chains.
  • Changed the exception handling model for message processing.
  • Improved shutdown handling whilst processing data from active application.
  • Hooking Feedback dialogs now displayed for modules loaded after start when uninitialised data detection is enabled.
  • Recursion replaced with looping to avoid exhausting stack space whilst populating hotspot view.
  • Symbol data cache implementation change to avoid potential stack exhaustion.
  • Bug fix for expand/collapse of tree control when scrolled horizontally.
  • Bug fix for Find Memory Dialog: maximum address and minimum address is now taken from allocation data and not from symbol data.
  • Bug fix for edit source code crash on analysis window when right clicking on in-line source code.

Version 2.27
Version 2.28 includes the following new functionality:

  • Update CRT information dialog.
  • Integrity and Uninitialised data handling improvements.
  • Map file handling improvements.
  • Internal maintenance bug fixes.
  • Addition of exception handler dialog to present a callstack and register dump if Memory Validator crashes.

Version 2.27
Version 2.27 includes the following new functionality:

  • Internal maintenance bug fixes.

Version 2.25
Version 2.26 includes the following new functionality:

  • The syntax coloured editor now highlights the edited line with an arrow and a different background colour for the edited line.
  • Colour selection dialog bug fix.
  • Various maintenance bug fixes.
  • When an application is started using 'launch' with CreateProcess() mode the feedback dialog is displayed. This makes the CreateProcess() behave the same (with respect to feedback) as the other modes.

Version 2.25
Version 2.25 includes the following new functionality:

  • Improved robustness for the function hooking code that alters machine code to insert hooks. This results in better reliability for the uninitialised data detection code and for the code that tracks COM object reference counts.
  • Performance increase for unhooking uninitialised data hooks when a DLL is unloaded. Performance is now Order N rather than Order N2.
  • Addition of a simple tutorial on the help menu. The tutorial will be improved in future releases.
  • Addition of this file on the help menu.
  • Novice user interface settings are retained between each time the novice wizard is displayed. Previously the wizard always reset the settings, which confused some people.
  • When you switch to the Novice user interface, you are asked to configure the settings to work with.
  • Leak detect and garbage collect buttons have been removed because they were causing too much confusion - leaks detected more accurately and faster by running the program to completion rather than trying to detect the leaks in situ.
  • Addition of a raw stack walk, to aid in stack walking when no frame pointer information is available. Please note that when this is enabled stack traces may have unusual entries in them.

Version 2.24
Version 2.24 includes the following new functionality:

  • Minor maintenance improvements.
  • Bug fix for discard stack traces for freed data.
  • Performance improvement for discard stack traces for freed data.

Version 2.23
Version 2.23 includes the following new functionality:

  • New logic for handling uninitialised data detect when first object found is on the stack or is statically allocated.
  • Uninitialised data detect now includes memory allocated using HeapAlloc().
  • New example code demonstrating overloading of new and delete operators so that class objects can be allocated on a HeapAlloc() heap. This example demonstrates tracking of allocations/deallocations of these objects and the detection of uninitialised data in these classes.

Version 2.22
Version 2.22 includes the following new functionality:

  • Bug fix for crash in stub whilst PDB walking. This bug only affected uninitialised data detection for some applications.

Version 2.21
Version 2.21 includes the following new functionality:

  • More robust heap scanning.
  • Bug fix for very rare crash when instrumenting CRT heap.
  • Multi threaded bug fix in user interface.
  • Session Manager user interface logic improvements.
  • Internal changes to improve data management.

Version 2.20
Version 2.20 includes the following new functionality:

  • Improved progress dialogs indicating alloc/realloc/free progress.
  • Watermark manager now updates all tabs with the watermark settings.
  • Filter definition dialog, fixed bug with file and line number specification.

Version 2.19
Version 2.19 includes the following new functionality:

  • Improved user defined allocator support. Support for macros extended to argument passing.
  • Clipboard support for Coverage tab. All tabs now copy in UNICODE and ANSI formats.
  • Improved error message handling when fail to launch an application.
  • Improved data enumeration.
  • Improved progress dialog boxes.

Version 2.18
Version 2.18 includes the following new functionality:

  • Faster memory buffer overflow detect. Performance improvement between 25x and 100x depending on options chosen.
  • Improved accuracy of memory buffer overflow detect.
  • Improved uninitialised data detect in memory buffer code.
  • Improved shutdown procedure for applications/services.
  • Object statistics display improved.
  • Heap scan crash during shutdown fixed.

Version 2.17
Version 2.17 includes the following new functionality:

  • Fixed bug in uninitialised data detection pdb file parsing.
  • Desktop window flicker removed when changing tabs.
  • Watermark combo box bug fixed.
  • Virtual Memory display update improved.
  • Running Objects display improved.
  • Novice mode, user interface colour choice handling improved.

Version 2.16
Version 2.16 includes the following new functionality:

  • Improved symbol, datatype and coverage handling for the case when a DLL is unloaded and another DLL is loaded into the same address space. Previously, the symbol cache addresses would resolve to the addresses supplied for the first DLL. The correct symbols are now resolved.

Version 2.15
Version 2.15 includes the following new functionality:

  • Search for data bug fix.
  • User interface mode bug fix.
  • Tree expand not adjusting scrollbar bug fix.

Version 2.14
Version 2.14 includes the following new functionality:

  • New functionality on the Pages tab to show objects and unused heap space, with the ability to highlight unused areas larger than a threshold.
  • Improved buffer overrun/underrun error detection.
  • Bug fix for cut/copy/paste from editing window.
  • Bug fix for rare crash on objects view.
  • Bug fix when shutting down the stub.

Version 2.13
Version 2.13 includes the following new functionality:

  • Dependent DLLs that are loaded as a dependency of another DLL are hooked. The dependent DLLs do not get loaded via a call to LoadLibrary() and were not being hooked. This is now fixed.
  • The Objects view has been reworked. The new implementation displays more statistics including type, size, number of allocations, maximum number of allocations, cumulative number of allocations, cumulative size percentage, cumulative object count percentage.
  • The search path used to find PDB files is now automatically updated as DLLs are found.

Version 2.12
Version 2.12 includes the following new functionality:

  • Support for NT Services. Memory Validator can now detect memory leaks, etc. in NT Services.
  • Sample NT Service showing how to use Memory Validator with NT Services.
  • Sample client for the NT Service.
  • Sample utility to control if Memory Validator is loaded by the Sample NT Service.
  • Bug fix for CreateProcess() startup method. Some applications would get a single step exception using this method because of incorrect calls to VirtualProtect(). This has been fixed.
  • A very rare bug that may occur after a tested application has shutdown has been fixed. Memory Validator has a high speed memory allocator that is used for managing interprocess communications work packages. If an allocation request for more than 128KB is made under specific conditions a crash may occur when using the memory allocated. This has been fixed.
  • The launch wizard for Novice and Intermediate modes sometimes would not enable the Next >> button. This has been fixed.

Version 2.11
Version 2.11 includes the following new functionality:

  • Add support for PDB files in any directory.
  • Bug fix for a very rare crash during program shutdown after MSVCRT.DLL has unloaded. Most customers will not have seen this bug.
  • Bug fix for a incorrectly truncated DLL name sent from stub to user interface. This bug resulted in corrupt DLL names being displayed in the dll hook status dialog.
  • Bug fix for background memory scan. When a corrupted memory block is found it is now correctly displayed when automatic display of errors is selected.

Version 2.10
Version 2.10 includes the following new functionality:

  • New launch mode, CreateProcess that is more robust and starts all programs by modifying the program's startup code. This new mode does not fail on the 1% of programs that did fail with the previous Suspend mode.
  • New user interface modes. User can now choose between Novice, Intermediate and Expert modes.
  • New user interface wizards for setting options and launching applications.
  • Fixed crash caused by race condition. This was a very rare bug.
  • Fixed symbol parsing bug introduced by new VisualStudio.
  • Net DbgHelp engine. This bug only affected the detection of uninitialised data.

Version 2.09
Version 2.09 includes the following fixes:

  • Supply the most up-to-date dbghelp.dll so that Memory Validator will give correct symbols when used with applications built with VisualStudio.
  • Net
  • Fix crash when session deleted when new graphics dialogs are populated with statistics data.

Version 2.08
Version 2.08 includes the following fixes:

  • Graphical dialogs on the Objects tab now function correctly.

Version 2.06
Version 2.07 includes the following fixes:

  • Memory Validator held onto the process handle of the process being monitored after the process had finished executing. This prevented the process from being rebuilt without closing Memory Validator. This has been fixed.
  • Miscellaneous bug fixes.

Version 2.06
Version 2.06 includes the following fixes:

  • Speed improvements to stub and user interface data processing.
  • Both stub and user interface require less memory to store the collected data.
  • Crash whan "Analyze" on Coverage window clicked fixed.
  • Crash when session deleted (explicit deletion, session purging or Memory Validator shutdown) fixed.
  • Miscellaneous crashes related to the same problem listed above also fixed.
  • Improved example program to show code highlights prior to executing the sample code.
  • Cross Thread dialog has been given a significant speed improvement. This dialog also requires less memory as a result.
  • Dynamic CRT not in use warning added.

Version 2.04
Version 2.05 includes the following fixes:

  • All query dialogs that can display large volumes of data have been given a significant speed improvement. These dialogs also require less memory as a result.
  • Miscellaneous bug fixes and speed improvements.
  • LoadIcon, LoadCursor, LoadCursorFromFile are no longer tracked as these handles are shared and cannot be deleted. This removes spurious trace data from the data log.
  • Different default settings to display different data sets when a session is running and when a session has completed.
  • Miscellaneous resizing bug fixes.
  • Improved Session Export dialog.