Memory Validator x86 Change History
Memory Validator x86 Change History
Version 10.21, 30 August 2024
Version 10.21 includes the following functionality:
- Improvements to Filter Definition dialog.
- Local Filters dialog is now resizable.
- Addition of allocation lifetime filter to Memory tab Local Filters.
- Addition of Merge filters on local filter dialog.
- Addition of Add to Callstack Trim.. on context menus.
- Bug fix: for moving a filter from Local filters (Memory tab) to Global Filters.
- Bug fix: global filters now persist from one run of MV to time you start MV.
- Bug fix: RegOpenKey() and RegOpenKeyEx() won't report handle allocations for predefined registry keys.
- Misc static analysis bug fixes.
- Change to behaviour of File->Save. Now prompts you for a filename if you've never supplied one.
- Improved behaviour for internet floating licensing if there is no internet connection - better error messages and acquisition of licence once internet connection is restored.
- Addition of API function int mvIgnoreThisThread(int ignoreThisThread);
- Mulitple bug fixes for filters.
- Change to Wait for Process dialog. It will now allow you to override the default behaviour and specify an executable on a path that doesn't currently exist - this allows for waiting for executables that will be created dynamically prior to launching.
- Reworked Filter Thread Manager (Managers menu) to provide a lot more flexibility when filtering by thread id.
- Bug fix: Thread names saved with session.
- Memory tab context menu: Addition of Hide this thread, Only show this thread, Filter manager.
- Statistics Types context menu: Addition of Find Type and Find Size.
- Statistics Sizes context menu: Addition of Find Size.
Version 10.20, 06 August 2024
Version 10.20 includes the following functionality:
- This is a recommended download.
- Bug fix for potential deadlock when profiling your application.
- Addition of "mark as fixed" to context menu for Memory and Analysis tabs.
- Items marked as fixed are drawn with a strikethrough display.
- Items that are bookmarked are drawn using an italic font.
- Memory search results persist and do not disappear when clicking any result.
- API calls mvSetWatermark() and mvSetWatermarkEx() now correctly set a timestamp.
- Bug fixes for memory search dialog.
- Additional Clear button on memory search dialog.
- Bug fix for potential deadlock when profiling your application.
- Performance optimization: when DLLs are loaded for inspection rather than execution we don't hook them.
- Filter dialog has a new option for matching by simplified template names to allow you to specify a template without arguments for filtering.
- Watermarks and Bookmarks that are set via the API are now displayed on the status bar at the bottom of the screen.
- Shortcut for moving to the next item on the Memory and Memory Analysis tabs. Shortcut is Ctrl-> and Ctrl-<. This collapses the current item, moves to the next/prev item then expands that item.
Version 10.19, 01 August 2024
Version 10.19 includes the following functionality:
- Bug fix for DWARF parser. DWARF created by the Swift compiler is now correctly read.
- Bug fix for C/C++ language parser.
- New Swift language parser.
- Change to Native API: mvLoadProfiler(), mvStartProfiler() and loadValidatorIntoApplication() now return TRUE/FALSE status codes.
- Bug fixes for Native API.
- New Native API: mvLoadProfiler6432() used for loading profiler into 32 bit but using 64 bit user interface.
- Filter dialog is now resizable.
- Memory Search dialog is now resizable.
- Diagnostic Environment Variables tab now displays PATH environment variable in single path chunks. This makes viewing long paths much easier.
- Bug fix for potential deadlock when profiling your application.
Version 10.18, 21 July 2024
Version 10.18 includes the following functionality:
- Bug fix for potential crash in svlAdminService.
- Misc bug fixes in svlAdminService to improve reliability and robustness.
- Misc static code analysis bug fixes.
Version 10.17, 10 June 2024
Version 10.17 includes the following functionality:
- Faster display of end-of-session data after program closes.
- Updated Symbol Lookup settings dialog to provide new options and improve UX.
- Updated Symbol Load Preferences settings dialog to add new compilers.
- Bug fix for Memory Coverage when used with Path Substitutions
.
- UX improvement for Path Substitutions to highlight substitutions for paths that don't exist and substitutions that don't exist.
- Bug fix for Path Substitutions to prevent path substitutions for paths that don't exist and substitutions that don't exist.
- ASP.Net Core dialog improved to examine .exe version information to identify the correct DLL to execute. This is required when .exe and .dll name are not similar.
- Addition of automatic Path Substitution option. Enabled by default.
- Application may be a service warning dialog now has a "Don't show me again" option.
- Don't Show Me Again settings include an option for the Application used Win32 Service API warning.
- Misc bug fixes.
Version 10.16, 30 May 2024
Version 10.16 includes the following functionality:
- Support for ASP.Net Core.
- New Launch menus and new launch dialog. Categories are now Application, Services, Web.
- Bug fix for .Net profiler crashing when resolving symbols due to profiler DLL being loaded and unloaded while CLR tries to find a suitable profiler.
- Settings dialog update to make Path Substitutions a setting in it's own right, separate from File Cache. This brings MV in lines with Bug Validator, Coverage Validator, Performance Validator and Thread Validator.
Version 10.15, 27 April 2024
Version 10.15 includes the following functionality:
- Bug fix for data corruption. This is a recommended download.
-
Version 10.14, 24 April 2024
Version 10.14 includes the following functionality:
- Removal of copied dbghelp.dll, symsrv.dll, symsrv.yes, bordebug.dll files when target program finishes executing. This fixes "debugger can't load my symbols anymore" problems reported by a few people because these DLLs were being loaded by the debugger instead of the DLLs the debugger expected to load.
Version 10.13, 17 April 2024
Version 10.13 includes the following functionality:
- Bug fix for installer problem with automatic software updates failing to install licence keys. Once this update is installed future automatice software updates will work correctly.
- Bug fix for crash caused by memory corruption if you select an executable after clicking Choose Exe... on the Hooked DLLs part of the settings dialog.
- Bug fix for rarely seen deadlock during shutdown of application being monitored.
- Bug fix for writing data in the wrong part of the registry.
Version 10.12, 20 March 2024
Version 10.12 includes the following functionality:
- Improved auto-updating of fields with suggested values on Monitor IIS/ISAPI dialog.
- Bug fix for Monitor IIS/ISAPI dialog to prevent message queue getting overload and unresponsive.
- Bug fix for Monitor IIS ASP.Net dialog to prevent message queue getting overload and unresponsive.
- Bug fix for Monitor WDS ASP.Net dialog to prevent message queue getting overload and unresponsive.
- Addition of filenames to Memory Mapped File descriptions on Virtual View, Pages and Paragraphs.
- Updated ISAPI tutorial example.
- Updated ASP.Net tutorial example.
- Bug fix for phantom extra lines that ASP.Net may inject into a class definition.
- Minor bug fixes and continued improvement of secure data handling.
- Bug fix for DWARF symbol handling.
- Support for Embarcadero Delphi 12.0.
- Support for Embarcadero C++ Builder 12.0.
Version 10.11, 09 March 2024
Version 10.11 includes the following functionality:
- This is a recommended software update.
- Bug fix for data transfer not working if set to Automatic.
- Bug fix for PDB file reading for PDB files created with Visual Studio 6.
- Bug fix for MAP file handling.
- Bug fix for launching VB6 applications.
- Bug fix for memory mapped file handling with improved security access restrictions.
- Minor bug fixes and continued improvement of secure data handling.
- Bug fixes for C++ parser.
Version 10.10, 08 February 2024
Version 10.10 includes the following functionality:
- Changes to security attributes/descriptors placed on files and pipes etc. We no longer use default settings (Everyone all access), but restrict access to Admin/System/Interactive Users and Deny Guest.
- Improvements to security issues in various places in the codebase.
- Updated the service related examples to be Unicode.
- Improvements for launching ASP.Net, detection of attempting to view localhost with https which will lead to web browser complaints about a lack of security certificate.
- Improvements to monitoring a service.
- Improved handling of low memory conditions in string handling.
- Bug fix for ASP.Net dialog to prevent failure to specify a URL to open.
- New method for identifying services - we check the session id is zero.
- Improved .Net Leak Analysis to group results by callstack with objects having the same age. This allows you to easily spot objects allocted on the same callstack that haven't been deallocated for N generations.
- Improved .Net memory snapshot data display, added two options to the Display dialog to allow fine tuning of which data is displayed - this is primarily about preventing unwanted data in the report.
- Added permissions checks for Data Transfer settings prior to launching/injecting/waiting on any process. This prevents trying to monitor a process without being able to communicate with it.
- Improved parsing for data types of allocated memory.
Version 10.09, 01 February 2024
Version 10.09 includes the following functionality:
- Software improvements due to static analysis with VisualLint and Gimpel PC-Lint.
- Bug fix for potential crash with DWARF symbol processing.
- Updated the profiler to only allocate from private Software Verify heaps and not the C runtime, leaving the C runtime undisturbed as much as possible (dbghelp, which we use to read PDB symbols uses the C runtime)>.
- Bug fixes for PE file reader.
- Memory leak fixes for PE file reader, found with Memory Validator.
- Bug fixes for possible crash when session is destroyed if certain is displayed on some of the .Net related displays.
- Removal of unwanted native data allocations for .Net Core self-contained runtime executable.
- Bug fix for C# parser failing to correctly handle an @"info" quoted string containing backslashes.
- Bug fixes for .Net Leak Analysis display.
- Bug fix for potential crash if NULL passed to Software Verify internal heap allocator.
Version 10.08, 13 December 2023
Version 10.08 includes the following functionality:
- Improved hooking for SetUnhandledExceptionFilter() by monitoring KernelBase.dll as well as kernel32.dll and api-ms-win-core-*.dll.
Version 10.07, 11 December 2023
Version 10.07 includes the following functionality:
- Bug fix for directory and filename concatenation when both '\' and '/' are used in the filename. This mainly affects users of C++ Builder x64, MingW, gcc, g++ and llvm.
- Miscellaneous 4K screen graphics improvements.
Version 10.06, 04 December 2023
Version 10.06 includes the following functionality:
- Bug fix for Subst Drives. Useful for when you copy a build off a build server onto a different drive letter but would like the filenames to continue to point to the correct place..
- Bug fix for drawing tree controls on 4K displays. The release a couple of weeks ago worked for some DPI levels, but failed for higher levels. Now working correctly.
Version 10.05, 02 December 2023
Version 10.05 includes the following functionality:
- Re-release 10.04 to fix the failure with the software release process for 10.04.
- This is a recommended download.
- Change to summary display: If coverage data is not being collected, memory coverage tiles will not be displayed.
- All threading synchronization primitives moved to the svlSupport.dll library, rather than included in each library. This has had the useful side effect of improving callstacks.
- At startup disk based data transfer files from any previous session are cleaned up. These are now done on their own thread, making for a faster startup for the case when a lot of files remain on disk if Memory Validator was closed early by the user or a crash.
- Bug fix for crash during shutdown of the target application. This crash was caused by a change to how the operating system behaves, causing an endless loop of recursing calls (about every 10th call would cause the recursion). This bug definitely affects Windows 11, and possibly affects Windows 10.
- Bug fixes for three crashes during shutdown (inside ExitProcess()) involving dbgHelp internals or CRT internals being incorrect.
Version 10.04, 28 November 2023
Version 10.04 includes the following functionality:
- This is a recommended download.
- Change to summary display: If coverage data is not being collected, memory coverage tiles will not be displayed.
- All threading synchronization primitives moved to the svlSupport.dll library, rather than included in each library. This has had the useful side effect of improving callstacks.
- At startup disk based data transfer files from any previous session are cleaned up. These are now done on their own thread, making for a faster startup for the case when a lot of files remain on disk if Memory Validator was closed early by the user or a crash.
- Bug fix for crash during shutdown of the target application. This crash was caused by a change to how the operating system behaves, causing an endless loop of recursing calls (about every 10th call would cause the recursion). This bug definitely affects Windows 11, and possibly affects Windows 10.
- Bug fixes for three crashes during shutdown (inside ExitProcess()) involving dbgHelp internals or CRT internals being incorrect.
Version 10.03, 21 November 2023
Version 10.03 includes the following functionality:
- Sessions are now destroyed on thier own thread. This means new Session creation is faster because any sessions requiring purging are pushed to their own thread for that - no waiting for the Session to be destroyed.
- Added error report when DllMain() for some Software Verify DLLs can't be hooked. This error report may be useful in diagnosing problems during shutdown of the target application.
- Bug fix for unwanted reports for CRT internals for C++ Builder (HeapAlloc(), VirtualAlloc() etc).
- Bug fixes for Watermarks displaying incorrectly.
- UX improvement - tree expand/collapse buttons are now easier to use because they are better sized on high DPI screens.
Version 10.02, 14 November 2023
Version 10.02 includes the following functionality:
- Bug fix for "frozen GUI" when under heavy load.
- Improved data processing - more events per second can be processed.
- Misc UX improvements.
Version 10.01, 07 November 2023
Version 10.01 includes the following functionality:
- Change to how the filename for the document that holds the session is created. It used to be created in the AppData\Local\Temp hierarchy. It is now created in AppData\SoftwareVerify\Bug Validator and has a name that indicates the date and time it was created.
- Bug fix for Watermarks, they now display the ID of the trace they were created for, not their own ID. They also sort using this id, making watermark filtering much more useful.
- Change to Memory Validator service API. svlMVStub_writeToLogFileA() writes ANSI strings as Unicode strings (previously they were written as ANSI).
- Change to Memory Validator service API. svlMVStub_writeToLogFileW() writes Unicode strings as Unicode strings (previously they were written ANSI).
- Updated Native API documentation to improve readability and ease of use.
- Updated NT Service API documentation to improve readability and ease of use.
Version 10.00, 19 October 2023
Version 10.00 includes the following functionality:
- Added API function loadValidatorIntoApplication(); which can be used to start Memory Validator from your application. Useful when the GUI methods for monitoring an application can't work.
- Added an example application to demonstrate loadValidatorIntoApplication();
- Added documentation for the above.
- Status indicator on Summary display to indicate if child processes have been launched, plus link to Diagnostics:Child Processes.
- Diagnostics:Child Processes tab now indicates number of child processes so that you can see there are child processes without needing to visit the tab.
- Data Transfer settings updated to include the ability to choose the data transport you want: Automatic, Disk, High Volume. The type of data transport influences which inter-process communication is method is used.
- Type of inter-process communication method is recorded on the diagnostic tab.
- Shared memory data transport settings updated to set the data throttling threshold based on the size of the page file, rather than a fixed constant.
Version 9.99, 06 October 2023
Version 9.99 includes the following functionality:
- This is a recommended software update.
- Bug fix for incorrectly display warning dialog on the launch dialog/wizard when trying to determine if Address Sanitizer is being used by the application being launched.
- If you are working with 32 bit applications using 32 bit Memory Validator you should download this update.
- Bug fix for potential deadlock when reading symbols. Found using Thread Validator.
- Bug fix for incorrect search path for symbol reader helper program when profiling certain programs.
Version 9.98, 27 September 2023
Version 9.98 includes the following functionality:
- Update to handle DLL function importing by API Set rather than DLL name.
- This update fixes problems tracking child processes of some applications created with recent compilers that use API sets in the import address table rather than DLL names.
- If you've had problems monitoring child processes you should try this update.
Version 9.97, 14 September 2023
Version 9.97 includes the following functionality:
- Improvements to diagnostic log information for symbol server dbghelp.dll path and symsrv.dll failure to load.
- Addition of predefined symbol servers to the symbol server definition dialog.
Version 9.96, 29 August 2023
Version 9.96 includes the following functionality:
- Symbol server downloading symbols progress improvement for earlier symbol server symsrv.dll implementations (before VS 2008).
- C++ parser improvement.
- Type statistics improvement. Various template files that used to be reported as filename:line-number (xmemory:36) are now reported with a proper C++ type (std::Tree_val>).
Version 9.95, 26 August 2023
Version 9.95 includes the following functionality:
- This is a recommended download. If you downloaded V9.92, V9.93 or V9.94 you should download this update.
- Bug fix for delayed memory deallocation bug that caused symptoms that looked like a memory leak (excessive memory usage) but didn't cause a leak in end-to-end testing.
- Bug fix for .Net profiler to prevent stack buffer overflow when very long function names are encountered.
- Bug fix for .Net profiler to prevent stack buffer overflow when very long class names (generic/template most likely) are encountered.
Version 9.94, 25 August 2023
Version 9.94 includes the following functionality:
- Mismatched new/free and malloc/delete, new/delete [] and new [] / delete detection improved.
- Improved C/C++ parser.
- Added extra error detection for symsrv.dll loading when using symbol servers.
- Updated Symbol Lookup settings to better handle custom DbgHelp.dll settings and symbol servers.
- Updated Symbol Server dialog to prevent incorrect settings for symsrv.dll.
- symsrv.dll load errors reported on the main summary view.
- Installer bug fix for Visual Studio 2022.
- Bug fix for Event Log XML parser to handle a log file format change on Windows 11.
- Bug fix for help file downloading.
Version 9.93, 14 August 2023
Version 9.93 includes the following functionality:
- Bug fix: Now possible to monitor native applications (as well as .Net application) launched by .Net processes (for example: Powershell).
- Improved error messages to the user on the Launch Dialog/Wizard.
Version 9.92, 01 August 2023
Version 9.92 includes the following functionality:
- If you use symbol servers you should download this version.
- Bug fixes for downloading symbols from symbol server. Some symbols would not download correctly. This was traced to a call to LoadLibraryEx() with the wrong parameters, which for some DLLs would work, and for others would result in exceptions inside DbgHelp.dll.
- Bug fixes for selecting the correct symbol download helper utility with the correct path and startup directory. There was a situation where this could get out of sync and then nothing worked. Now fixed.
- Additional error states from symbol servers are now recorded on the diagnostic tab.
- Bug fix for symbol session load preferences.
- Fixed data race bug on .Net Generations view.
- Bug fix for a session closing crash caused by incorrect ordering of session data destruction. Affects some .Net/mixed-mode applications only.
- Reduced the amount of error information reported on the diagnostic to remove redundant/duplicate information.
Version 9.91, 27 July 2023
Version 9.91 includes the following functionality:
- Bug fix for GUI crash when API calls apiSetHeapNameExA() and apiSetHeapNameExW() called with discard parameter set to TRUE. Bug fixed within 2 days of bug first reported because the customer supplied us with data we requested about the bug.
- Bug fix for loading/saving mismatched allocation type data.
- Minor changes to licence installation dialog to prevent user error.
- Improvements to message dialogs displayed when licensing errors are found running Bug Validator.
- Improvements to error messages on the Floating Licence/Educational Licence tab.
- Updated svlUXTheme.
Version 9.90, 14 July 2023
Version 9.90 includes the following functionality:
- .Net runtime and .Net framework detection improved - to prevent/ensure correct hooks are installed, depending on options chosen.
Version 9.89, 10 July 2023
Version 9.89 includes the following functionality:
- Logging improved to include symbol servers.
- When profiling x86 applications from x64 the wrong symsrv.dll was being loaded, resulting in a failure to download symbols.
- Microsoft has changed the debug string format that is sent to the DbgHelp symbol debugging callback, breaking our detection of the failure above.
- A failure to correctly identify a PDB file downloaded from a symbol server due to a case sensitivity mistake.
- Bug fix for incorrect search for downloaded PDB.
- Fixed incorrect report of missing line numbers for some PDBs downloaded from symbol servers.
- Symbol Server Misc settings dialog updated to handle keeping/clean svlDbgHelpReader log files.
- We now identify symbol servers that are offline/don't exist, as these result in timeouts leading to a lack of performance when fetching symbols.
- Symbol server dialog updates to show symbol servers that are offline/don't exist.
- Debug Information dialog updated to include information about symbol servers that are offline/don't exist.
- Summary panel updated to include information about symbol servers that are offline/don't exist.
- Handle forward slash in filepaths as well as backslash. Useful for MingW/gcc/g++.
Version 9.88, 06 June 2023
Version 9.88 includes the following functionality:
- Bug fix for symbol path behaviour to prevent additional paths relating to symbol server cache directories being added to the symbol path.
Version 9.87, 05 June 2023
Version 9.87 includes the following functionality:
- Miscellaneous software updates.
- Minor performance improvement, don't try to fetch symbols for DLLs that are resource only.
- Internal robustness improvements.
Version 9.86, 23 May 2023
Version 9.86 includes the following functionality:
- Improved detection of .Net execution engine for .Net and .Net Core.
- Bug fix for some FALSE positive native memory leaks when profiling .Net Core applications.
- Improvements to the Application to Monitor dll for .Net Core applications (framework dependent and self-contained).
- Bug fix for monitoring child processes of .Net Core applications.
- Bug fixes for monitor child process.
- Bug fixes for example applications.
- Bug fixes for fetching symbols from symbol servers.
Version 9.85, 21 May 2023
Version 9.85 includes the following functionality:
- UX improvement: The behaviour of Memory Validator in admin mode more closely matches behaviour in non-admin mode.
- Improvements to the .Net Core launch dialog.
- Misc bug fixes.
Version 9.84, 11 May 2023
Version 9.84 includes the following functionality:
- Improved Memory Validator DLL deployment for IIS/ISAPI.
- Improved Memory Validator DLL deployment for IIS/ASP.Net.
- Improved IIS/ISAPI/ASP.Net logging of instrumentation process.
- Changed profiler DLL loading priority when loaded from the service API - looks in the same directory as the EXE (or DLL for IIS) and if it can't load the profilter DLL from there, will load the profiler DLL from the Valiadtor installation directory.
- Bug fixes for disk based data transport used when shared memory is not available (in IIS and some services). Data races resulting in failing data transport fixed.
- If you're working with IIS and/or services or the NT Service API this is a recommended download.
Version 9.83, 25 April 2023
Version 9.83 includes the following functionality:
- Performance improvement for Summary tab when .Net Ages data is displayed.
- Performance improvement for Summary tab when .Net Stale Object is displayed.
- Improved UX for data transfer settings dialog. Now checks directories have correct permissions for IIS and Validator, plus optional automatic setting of permissions and links to explanatory articles.
- Improved UX for all dialogs that interact with IIS - will check that data transfer directories are correctly set up and if not, prompt to set them up.
- UX Improvement for Web Development Server dialog. Automatic setting of web root permissions for User.
- UX Improvement for Web Development Server dialog. Prompts to show how to set permissions manually if automatic settings fail.
- Bug fixes and additional safety measures added to SVL Admin Service.
- Bug fix for hang caused by attempt to display a dialog box to warn about something inside of IIS.
Version 9.82, 13 April 2023
Version 9.82 includes the following functionality:
- IIS related dialogs now include Opera and Brave browsers with Chrome, Edge, Firefox and Internet Explorer (kept for users on legacy systems).
- UX Improvement for IIS Monitor ISAPI dialog. Automatic setting of web root permissions for User and IIS_IUSRS.
- UX Improvement for IIS Monitor ISAPI dialog. Prompts to show how to set permissions manually if automatic settings fail.
- UX Improvement for IIS Monitor ASP.Net dialog. Automatic setting of web root permissions for User and IIS_IUSRS.
- UX Improvement for IIS Monitor ASP.Net dialog. Prompts to show how to set permissions manually if automatic settings fail.
- Bug fix for setting environment variables for monitoring .Net applications.
- Misc bug fixes.
Version 9.81, 11 April 2023
Version 9.81 includes the following functionality:
- Bug fix for delete(arr[x]); parsing bug.
Version 9.80, 04 April 2023
Version 9.80 includes the following functionality:
- UX Improvement for Wait For Process dialog - improved error handling for wait for service, with suggestions for the correct way to monitor a service.
- UX Improvement for Wait For Process dialog - improved error handling for wait for service child process, with suggestions for the correct way to monitor a process running on a service account.
- UX Improvement for Inject into Process dialog - improved error handling for failing to inject into a process running as admin.
- Misc bug fixes.
Version 9.79, 17 March 2023
Version 9.79 includes the following functionality:
- Bug fix for incorrect report of deleting release memory when debug memory is being deleted. Affects all Visual Studio versions.
- Bug fix for trying to read TDS debug information from a .bpl or .def file in an administrator mode directory.
Version 9.78, 15 March 2023
Version 9.78 includes the following functionality:
- Bug fix for loading global filter files (*.mvf, *.mvf_x64) via the GUI and via the command line using -globalFilters. Sorry, unfortunately it was not possible to make this fix backwards compatible. Previous filter file definitions will not load - you will need to create them again.
- Bug fix for incorrect new/delete handling when the unusual syntax of delete(var); is used.
Version 9.77, 10 March 2023
Version 9.77 includes the following functionality:
- This is a recommended download if you use Delphi or C++ Builder.
- Bug fix for TDS debug information reading - we can now identify additional functions compared to earlier versions.
- Improved callstack symbol results for Delphi (x86 and x64) and C++ Builder x86 applications.
Version 9.76, 09 March 2023
Version 9.76 includes the following functionality:
- This is a recommended download.
- Bug fix for data race potential double delete crash processing native reallocation/deallocation data in Memory Validator UI.
- Bug fix for data race potential double delete crash processing .Net garbage collection data in Memory Validator UI.
- Bug fix for data cleanup crash caused by uninitialised data.
- Bug fix for FALSE positive incorrect deallocation report for C++ Builder.
- Less data pushed onto Windows message queue, more responsive GUI, faster .Net garbage collection processing.
- Bug fix for C++ parser, fixes a FALSE positive mismatch malloc/delete/new/free/new []/delete warning.
- UX Theme dialog modified to allow speed adjustment for visual updates on the Summary screen.
Version 9.75, 01 March 2023
Version 9.75 includes the following functionality:
- This is a highly recommended download.
- Bug fix for multi-threaded error that can cause crashes.
- Bug fix for end of session detection.
- Performance improvement for statistics calculation.
- Reduced load on main thread message queue.
Version 9.74, 28 February 2023
Version 9.74 includes the following functionality:
- This is a highly recommended download.
- Bug fix for double delete error that can cause crashes.
- Bug fix for editing toolbar (cut and copy were swapped compared to the icons) in internal source code editor.
Version 9.73, 17 February 2023
Version 9.73 includes the following functionality:
- Improved handling of shutdown of application being monitored by the GUI.
- Bug fix for file selection on settings dialog "File Locations".
- Bug fix for identifying Visual Studio source code install location when searching for files from File Locations settings.
- Installer bug fix.
Version 9.72, 07 February 2023
Version 9.72 includes the following functionality:
- Bug fix for memory leaks inside Memory Validator GUI.
- Bug fix for displayed "mapped" memory in Analysis/Virtual/Pages and Paragraphs displays.
- Performance improvement (faster and less memory use) for statistics handling.
- Fix for incorrect background bar graph for Unknown Size on Statistics/Types display.
- Warning shown on the Allocation History settings dialogwhen allocation history purging is disabled.
- Warning shown on the Summary text panel when allocation history purging is disabled.
- Update to detect Windows 11 operating system.
- This is a recommended download.
Version 9.71, 30 January 2023
Version 9.71 includes the following functionality:
- Bug fix for failing to update Watermark combo boxes on various user interfaces, depending on user actions.
- Bug fix for failing to update Tag Tracker combo boxes on various user interfaces, depending on user actions.
- Bug fix for some memory leaks caused by incorrect data destruction logic.
- Bug fix for potential memory corruption with .Net snapshots.
- Bug fix for .Net snapshot purging.
- Memory view, Memory Query view, added context menu, Copy special menu has additional option for copying class::method name.
- UX improvement to timeline. If timeline set to display .Net only and start a native application, switch to adaptive display. If timeline set to display native only and start a .Net application, switch to adaptive display.
- This is a recommened download.
Version 9.70, 26 January 2023
Version 9.70 includes the following functionality:
- Bug fix for possible NULL pointer access after abandoning session or deleting sessions from the session manager.
- This is a recommended download.
Version 9.69, 11 January 2023
Version 9.69 includes the following functionality:
- Bug fix for Stub Global Hook detection.
- New reporting on the main summary view: shows which DLLs have been prevented from loading by stub global hook dlls. Also lists DLLs that use Visual Leak Detector.
- New Tools menu, entry DLLs Prevented from Loading
Version 9.68, 22 December 2022
Version 9.68 includes the following functionality:
- Bug fix for incorrect deallocator detection for various C runtime functions.
Version 9.67, 19 December 2022
Version 9.67 includes the following functionality:
- VirtualAlloc() calls are now annotated with information indicating any wasted space caused by the allocation.
- Additional entries are included to indicate wasted space implicitly allocated by calls to VirtualAlloc().
- User interface update: Analysis subtab Virtual: Pages and Paragraphs displays now filterable to display All, Committed, Reserved, Free, Private, Image, Mapped, Stack, Shareable, Swapped, Wasted memory.
- Bug fixes for Pages and Paragraphs displays.
Version 9.66, 12 December 2022
Version 9.66 includes the following functionality:
Version 9.65, 28 November 2022
Version 9.65 includes the following functionality:
- Misc bug fixes.
- Updated UX Theme.
Version 9.64, 22 November 2022
Version 9.64 includes the following functionality:
- Bug fix for Timeline graph for GDI handles.
Version 9.63, 16 November 2022
Version 9.63 includes the following functionality:
- We've updated multiple user interfaces to allow you to view more granular data than before.
- Addition of new allocator option on Types, Sizes and Locations views. This allows you to choose the allocator type to view the data for - you can see all the data, or just GDI handles, for example.
- New timeline options added for GDI Handles and USER32 Handles, making up to 40 possible timeline graphs to view.
- Running object totals updated to include GDI Handles and USER32 Handles.
- Improved UX on Generations view and Ages view.
- Bug fix for subtle data destruction data race - this affects all application types, but is mainly triggered by .Net applications.
Version 9.62, 31 October 2022
Version 9.62 includes the following functionality:
- Floating licencing bug fix.
- Data entry bug fix - prevent informative error dialog displaying in wrong situation.
- Simplified UX for the File Locations dialog, plus improved options for file searching.
- Updated Help menu.
- Miscellaneous bug fixes.
- Updated documentation.
Version 9.61, 22 October 2022
Version 9.61 includes the following functionality:
- Symbol fetching bug fix.
- Updated Help menu.
- Minor bug fixes.
Version 9.61, 22 October 2022
Version 9.61 includes the following functionality:
Version 9.60, 03 October 2022
Version 9.60 includes the following functionality:
- Bug fix for parsing XML event log data when it contained double quotes but parser was expecting single quotes.
Version 9.59, 13 September 2022
Version 9.59 includes the following functionality:
- Bug fix for Instrumentation settings when Reset or Reset All.
- Bug fix for Memory Coverage.
- Bug fix for C++ parser.
- Bug fix for reseting .Net profiler environment variables - to stop the profiler accidentally starting when you run a .Net process outside of Memory Validator.
- Bug fix for handling bad HeapFree().
Version 9.58, 09 August 2022
Version 9.58 includes the following functionality:
- Addition of new page to the First Run Wizard - build example projects.
- Bug fix for Symbol Lookup settings.
- Bug fix for service library.
- Bug fix for failure to attach to a launched application when the user specifies the PATH environment variable on the launch dialog.
- Addition of bad path colouring for PATH environment variable on the environment variables dialog (from launch dialogs/wizards).
- Bug fix for path substitution.
- UX improvement and documentation improvement for Instrumentation settings.
- Improved default IIS user name suggestion on IIS related dialogs.
Version 9.57, 19 July 2022
Version 9.57 includes the following functionality:
- Updated licence key entry to be aware of multiple different whitespace equivalents for various languages.
- Bug fix and performance improvement for display filters on Memory View: Filter by filename in the middle of a callstack.
- Bug fix for display filters on Memory View: Filter by allocation size.
- Bug fix for floating licensing. If you are using floating licensing you want this bug fix.
Version 9.56, 08 July 2022
Version 9.56 includes the following functionality:
- Reduction in CPU usage consumption for floating licence thread.
- Improved end of session detection for data transport from target application.
- Bug fix for symbol fetching.
Version 9.55, 24 June 2022
Version 9.55 includes the following functionality:
- Improvement to session timeout handling to catch those few applications that run as a service that need a timeout.
- Bug fix for licence server global floating licences (development only, not available yet) reporting licences in use when licence has been released.
- Refactored Floating licence GUI and Auto test GUI.
Version 9.54, 20 June 2022
Version 9.54 includes the following functionality:
- Bug fix for testing if service (or application linked to a service) is linked to the NT Service API.
- Static analysis bug fixes.
- Additional logging added to NT Service API.
- New NT Service API call: svlMVStub_ShutdownMemoryValidator()
- Data race bug fixes for Floating Licence handling.
- Addition of timeout to improve process-has-finished handling for the few applications that don't handle this well - usually processes running on a service account that don't allow their process handle to be opened.
- Bug fix for missing installer dependency on vanilla machines with no installs.
Version 9.53, 06 June 2022
Version 9.53 includes the following functionality:
- Bug fix for source code code scrolling drawing error on DPI scaled displays.
- Updated installer to only ask about closing Visual Studio after the choice for installing Visual Studio menus has been made.
Version 9.52, 31 May 2022
Version 9.52 includes the following functionality:
- Bug fix PDB symbol reader.
- Various static analysis bug fixes.
Version 9.51, 23 May 2022
Version 9.51 includes the following functionality:
- Bug fix for Hooked DLLs.
- Bug fixes for licence server.
- Bug fixes for incorrect test with FindFirstFile().
- .Net profiler - fix for potential hang.
- Bug fix for launch wizard/dialog, can no longer select hidden GUI by accident, will only hide GUI if target application is a console application.
- Performance improvement (detected with Performance Validator).
- Reliability improvement for memory mapped data transport when other end of the data comms dies unexpectedly.
Version 9.50, 26 April 2022
Version 9.50 includes the following functionality:
- Static analysis bug fixes.
- Misc bug fixes.
- Support for licence server.
- Improved support for Relations->Address and related queries from the Memory View context menu.
- Bad deallocation detection now detects when you allocate in a Debug DLL but deallocate in a Release DLL (or vice versa). This allows you to identify bugs marked as Heap Corruption by Windows but which are not heap corruptions, but incorrect heap!
- Improved Loaded Modules dialog. Additional columns to indicate native/managed/mixed-mode and Debug/Release dll status.
Version 9.49, 07 April 2022
Version 9.49 includes the following functionality:
- Bug fix for mixed mode callstacks, previously unresolved .Net symbols are now correctly resolved.
- Improved callstack walking for x64 callstacks.
- Bug fix for toolbar launch icon enabled/disabled status.
- Data transport improvement - reduced locking.
- Improved registry access handling.
- Bug fix PE file entry point type recognition. Incorrect classification of C++.Net applications as native now fixed.
Version 9.48, 30 March 2022
Version 9.48 includes the following functionality:
- Addition of command line builder button to launch dialogs and launch wizard to allow you to easily generate a usable command line from a known working launch configuration.
Version 9.47, 27 March 2022
Version 9.47 includes the following functionality:
- Addition of Command Line Builder to help you create command lines to invoke Memory Validator. See Launch menu.
- Performance improvement for exporting sessions.
- Bug fix for progress dialog. If has a NULL windows prevent it from causing all windows on screen from flickering if Invalidated.
Version 9.46, 22 February 2022
Version 9.46 includes the following functionality:
- File paths specified inside the -fileLocations can have environment variables specified as part of the path. The env var is resolved when it is imported from the file.
- File Locations user interface now reports how many file locations are specified.
- Diagnostic environment variable display now displays Memory Validator env vars, target application env vars, and any errors substituting env vars in strings, allowing you to debug env var usage inside Memory Validator.
- More information about using environment variables and how to debug them in this article: https://blog.softwareverify.com/using-and-debugging-environment-variables
Version 9.45, 08 February 2022
Version 9.45 includes the following functionality:
- Bug fix: Tools->Search... works when on Analysis tab.
- Improvement: Tools->Query Address... now includes handles as well as memory.
- Diagnostic tab. Addition of new categories "Symbol Errors" and "Symbol Success" allowing you to more easily identify symbol failure or symbol success messages.
- Bug fix for positioning of Memory Validator at startup. It will now redisplay where it used to be shown, and if it can't (because of monitors changing size or position) it will work out a sensible place to display itself.
Version 9.44, 08 February 2022
Version 9.44 includes the following functionality:
- Bug fix for hang on Timeline view. On some machines the Windows message queue could get saturated with requests to update the display. This would mean the display would draw but you couldn't click away from it, making Memory Validator unusable.
- UX improvement. Removal of dialog asking about a symbol directory. We now check for the existence of this directory and add it to the PDB paths automatically.
Version 9.43, 07 February 2022
Version 9.43 includes the following functionality:
- Bug fix for Memory view, now displays allocation location and deallocation location for mismatched deallocation errors.
- Analysis - Query display settings dialog updated to match the Memory view display settings dialog.
- Analysis - Query now displays information about how many items hidden from display by settings and filters.
- Memory view and Analysis - Query view context menus have an additional menu item for filtering DLLs at the instrumentation stage.
- Bug fix for reading debug symbols for DLL in directories that are write protected or require admin privileges to write files.
- Bug fix for symbol reader helper utility programs.
- Updated API and NT Service API related header files with extra information about which header files to use for which task.
- Update API and NT Service API documentation.
- Additional checks built into the start Validator from service code to check that the data transfer directory exists and is writeable.
Version 9.42, 27 January 2022
Version 9.42 includes the following functionality:
- Bug fixes for reporting unknown sizes when profiling 32 bit applications from 64 bit GUI.
- Additional work to clear .Net profiler env vars after a .Net process successfully attaches to the profiler.
Version 9.41, 13 January 2022
Version 9.41 includes the following functionality:
- Diagnostic data improvements.
- Add reporting for when ExitProcess() is called. Now you can see the exit code and callstack for where this call is made.
- Add reporting for when abort() is called. Now you can see the callstack for where this call is made.
- Add reporting for when a pure virtual function is called (an error). Now you can see the callstack for where this call is made.
- Improvements to PDB/TDS/MAP handling.
- Bug fixes to reporting on Memory View.
- Bug fixes for NetApiBufferAllocate family of functions.
- Bug fixes for CoTaskMemAlloc family of functions.
Version 9.40, 10 January 2022
Version 9.40 includes the following functionality:
- Addition of support for reporting stack buffer overrun fatal program exit. Now creates an error trace.
- Addition of support for reporting invalid c runtime parameter fatal program exit. Now creates an error trace.
- Source code discovery (for CRT/Visual Studio supplied files) improved. We can now show you source code for the CRT/Visual Studio parts of your callstack that are not your code.
Version 9.39, 05 January 2022
Version 9.39 includes the following functionality:
- Bug fix for allocation lifetime sometimes failing to stop increasing after an application has finished executing.
- Additional checks for Address Sanitizer. Now checks the PE file exports and the symbols.
- Updated FORTRAN keyword colouring rules to include FORTRAN 2003, 2008.
- File Locations settings updated to prevent non-directory locations from being added to the list of directories.
- File Locations settings when loaded are checked to see if they reference files, and if so are converted to directory locations if possible.
Version 9.38, 23 December 2021
Version 9.38 includes the following functionality:
- Addition of incompatibility check for Address Sanitizer usage when launching an application.
- Bug fix for potential crash (race condition) on diagnostic child process view.
- Bug fix for crash with in-place memory leak detection of specific addresses.
- Update to the svlMVStubService libraries, static /MD and static /MT versions (debug and release) are now available.
- Maintenance release: Software Verify UX Theme moved into it's own library.
Version 9.37, 18 November 2021
Version 9.37 includes the following functionality:
- This is a recommended download.
- Support for Visual Studio 2022.
- Updated Service API to have more detailed logging output. If you enable logging you'll also get the internal Software Verify logging data that will make understanding the service error codes so much easier.
- Bug fix for .Net Core DLL detection, added DLL entry point type to make the specification stricter.
- Addition of Env Vars diagnostic tab so that you can easily see what environment variables are set in the process you are monitoring (or the process you've just launched, intending to monitor a child process).
- Addition of Child Processes diagnostic tab so that when you are trying to work out which child process to monitor, you can see which applications are launched by a given process.
- Symbol Load Preferences now a main setting group on the settings dialog.
- Symbol Load Preferences added to first run wizard.
- Bug fix for incorrect hooking exclusion of svldwarf.dll and .Net Core runtime dlls.
- When a session starts Memory Validator will change the display to a predefined display. Default value is Summary display. You can change this value from the settings dialog "Display Behaviour".
- When a session finishes Memory Validator will change the display to a predefined display. For Native and Mixed mode, defaults are the Memory tab, native sub-tab. For .Net and .Net core, default is no change of display. You can change this value from the settings dialog "Display Behaviour".
- UX improvement. When using the inject dialog/wizard on a 64 bit OS, it will indicate that 64 processes will not be shown by x86 Validator.
- Bug fix for potential out of memory error when trying to edit using Visual Studio.
Version 9.36, 12 November 2021
Version 9.36 includes the following functionality:
- This is a recommended download.
- 25 new GDI handle allocation trackings hooks, raising the total to 70 hooks just for tracking GDI handle allocations.
- The Find Memory dialog on the Analysis Query tab has two new object types "All handle types" and "All GDI handle types".
- Launch dialog bug fix for specifying PATH substitution in launch environment variables. In some situations it would fail, now fixed.
- Launch dialog environment variables now supports PATH substitution for another environment variable also specified at launch time. For example: PATH_DLLS=c:\dlls PATH=%PATH%;%PATH_DLLS%
- Misc UX improvements for Symbol Lookup debug information child dialogs for MingW, Delphi, C++ Builder.
- Addition of Symbol Load Preferences dialog to allow you to choose which debug information formats are relevant for your project. Setting these correctly can reduce the time spent looking for debug info by not looking for debug formats you don't use. Access this via Symbol Lookup.
- Addition of new settings panel "Symbol Caching".
Version 9.35, 09 November 2021
Version 9.35 includes the following functionality:
- Session export now allows choice of UTF16 LE, UTF8, ASCII export. Default is UTF16 LE to keep compatibility with previous versions.
- New command line arguments to allow you to specify the file encoding of exported files: -exportAsHTML_BOM -exportAsXML_BOM. Valid values are ASCII, UTF8, UTF16. See help for details.
Version 9.34, 01 November 2021
Version 9.34 includes the following functionality:
- Various informational/warning dialogs that could potentially be displayed when the GUI is hidden (-hideUI command line argument), causing a hang, these dialogs will now not be displayed.
- Reworked MV API to work better with earlier versions of Visual Studio.
- Better MAP file symbol handling for Delphi and C++ Builder.
Version 9.33, 26 October 2021
Version 9.33 includes the following functionality:
- Addition of .bat file extension to Launch dialog.
- Command line: if -program specifies a batch file and you don't specify -programToMonitor the first application in the batch file will be selected as the program to monitor.
- Bug fix for rare race condition that can result in the Validator failing to send/receive data during the run, or at shutdown.
- Optimized the send all data test used at shutdown to decide if OK to shutdown when sending data from the target process, resulting in faster shutdowns.
- This is a recommended download.
Version 9.32, 19 October 2021
Version 9.32 includes the following functionality:
- Added command line argument -setenvironment envVarName=envVarValue for settings environment variables in Bug Validator from the command line.
You can then reference these env vars using $ENV_VAR$ in subsequent arguments on the command line.
For example: -setenvironment TEST_PATH=E:\dev\tests\sunscreen\ -program "$TEST_PATH$SunScreen-GoogleTest.exe"
- Updated the default application to monitor settings to include testhost.exe.
For existing installations, to update this, open the Launch Dialog/Wizard, click Edit... next to Application to Monitor, click Set Defaults, click OK.
- UX improvement, prevent addition (or editing of existing entries) that result in more than one definition of an application to monitor for a specific application.
- UX improvements to inject into service warning dialog.
- Bug fixes for default application to monitor combo on the applicationToMonitor dialog.
Version 9.31, 14 October 2021
Version 9.31 includes the following functionality:
- This is a RECOMMENDED download.
- Bug fix for multithreading race conditions. Fixs some random hangs.
- Improved debug information missing dialogs and related help documentation.
- Improved some status messages.
- Bug fix for missing DLL, and unsatisfied dependencies on Windows XP.
- Bug fix for missing DLL dependency warning on Windows XP.
- Modified installer shortcut criteria.
Version 9.30, 04 October 2021
Version 9.30 includes the following functionality:
- DLL Dependency checker improvement.
- Addition of Contact customer support to Help menu, and various other related contact improvements.
Version 9.29, 29 September 2021
Version 9.29 includes the following functionality:
- Support for DWARF debug information format (C++ Builder x64, MingW, QtCreator).
- Addition of support for logging errors in GUI.
Version 9.28, 24 August 2021
Version 9.28 includes the following functionality:
- Additional security when downloading and installing software updates. Digital signature is checked to be present and contain the correct details.
- Improved TDS symbol reading. Now resolves symbols in initialization segment correctly.
- Performance improvement: when querying for version information will not trigger the DLL load/unload monitoring code.
Version 9.27, 20 August 2021
Version 9.27 includes the following functionality:
- Bug fix for launch application wizard application to monitor combo box. The launch wizard now has the same behaviour as the launch dialog with respect to monitoring child processes.
Version 9.26, 12 August 2021
Version 9.26 includes the following functionality:
- This is a recommended download.
- Multi-threading data race bug fix.
- DLL inspection bug fix for potential crash.
- Bug fix for crash during shutdown.
Version 9.25, 02 August 2021
Version 9.25 includes the following functionality:
- Bug fix for incorrect Delphi/C++ Builder line numbers.
- Bug fix for incorrect data in MAP file line numbers for Delphi.
- Bug fix for failing to load all TDS symbols due to a failure in the TDS symbol mangler causing an access violation. All symbols are loaded now.
Version 9.24, 20 July 2021
Version 9.24 includes the following functionality:
- Bug fix for licence key installation for 32 bit Memory Validator when installing via manual install on x64 systems.
- Bug fix for licence key installation for 32 bit Memory Validator when installing via automatic updates.
Version 9.23, 15 July 2021
Version 9.23 includes the following functionality:
- Bug fix for error report of failing to delete a NULL handle from a HDC. Yes, you can't delete a non-object from a HDC, but it's also not an error to be concerned about, nothing is leaking.
- Bug fix for mismatched memory free/delete error caused by compiler/link tail call optimisation in MFC dlls.
Version 9.22, 06 July 2021
Version 9.22 includes the following functionality:
- Bug fix for registry reading bug. Only affects installs on machines that don't already have an install.
Version 9.21, 03 July 2021
Version 9.21 includes the following functionality:
- Support for monitoring .Net Core applications launched from other applications (native, .Net and .Net Core). This change may break any previous settings you have for monitoring applications launched from other applications - we've done our best to keep monitoring native and .Net applications working as normal but in some circumstances you'll need to reconfigure the monitor an application settings. This is unfortunate but unavoidable to get this new behaviour.
- Updated launch .Net Core dialog
- New command line options: -programToMonitorEXE, -programToMonitorDLL, -waitNameEXE, -waitNameDLL
- Removed Wait for Application wizard.
- Updated Wait for Application dialog, now including options for specifying .Net Core applications (and dll).
- Updated Inject into Application dialog and wizard.
- Updated Application to Monitor dialogs.
- Update documentation.
Version 9.20, 15 June 2021
Version 9.20 includes the following functionality:
- Bug fix for monitoring process launched from another process.
- Bug fix for data display on Memory view.
Version 9.19, 07 June 2021
Version 9.19 includes the following functionality:
- Minor improvements to code parser.
- Documented command line arguments -dotNetCoreArg, -dotNetCoreLaunchType.
Version 9.18, 02 June 2021
Version 9.18 includes the following functionality:
- This release improves the .Net Core support and adds a variety of simplifications to make launching applications easier.
- Dedicated .Net Core launch dialog.
- New Launch menu.
- New Launch chooser.
- New function key assignments for launching applications and services.
Version 9.17, 19 May 2021
Version 9.17 includes the following functionality:
- Updated installer.
- Misc bug fixes.
- Updated handling for .Net profiler.
- Basic support for .Net Core and portable PDB debugging file format.
Version 9.16, 21 April 2021
Version 9.16 includes the following functionality:
Version 9.15, 16 April 2021
Version 9.15 includes the following functionality:
- Miscellaneous bug fixes and performance improvements.
Version 9.14, 08 April 2021
Version 9.14 includes the following functionality:
- Bug fix for floating licensing error when empty licence data is acquired by the network.
- Bug fix for GetProcAddress() hook when DLL that functions are acquired from are loaded, unloaded, loaded at a new address.
- This is a recommended download.
Version 9.13, 02 April 2021
Version 9.13 includes the following functionality:
- Updated advanced callstack dialog.
- New C++ Builder / Delphi statically linked callstack dialog.
- Options for choosing how to walk callstack for statically linked C++ Builder / Delphi executable.
- Depending on the options chosen the stack trace is more or less accurate and ranges from slow to very fast. Options provided to allow tradeoffs between accuracy and speed.
- Fix for nativeExample installer missing source files.
- Updated help file now correctly refers to the nativeExample, not mvExample.
Version 9.12, 31 March 2021
Version 9.12 includes the following functionality:
- Bug fix for crash using Vector class. This is a recommended download.
- Many multithreading speed tweaks. In some situations these will be beneficial.
Version 9.11, 10 March 2021
Version 9.11 includes the following functionality:
- Compiled HTML Help (CHM) and PDF help files are now downloaded outside of the setup executable. This is an attempt to stop anti-virus detectors mistaking the setup file for virus/malware because the CHM has triggered a FALSE positive virus detection.
- Bug fix for finding Program Files directory for non English language countries.
- Bug fix for some allocations with an unknown size not being recorded.
- Updated Allocation Range settings to allow unknown size allocations to be acknowledged or ignored as appropriate.
- Bug fix for Memory Coverage when data collection turned off.
- Bug fix for Memory Coverage duplicate filenames.
- Improved Map File reading speed.
- Misc performance improvements.
Version 9.10, 01 March 2021
Version 9.10 includes the following functionality:
- Column highlighting is now handled by the UX Theme. Classic, modern and high contrast themes get different column highlighting.
- Memory tab: Addition of Properties option to allow you to easily view the properties dialog for the selected DLL.
- New Memory Snapshot method: Create snapshot after garbage collect and compare with the previous snapshot. This allows you to automatically compare surviving objects after GCs.
- Settings dialog now has Reset All and Reset buttons, allowing finer grained control over what gets reset than previously.
- Bug fix for GetQueuedCompletionStatus() hook.
- Improved error messages for when inject into running process fails and the target is running as admin but Memory Validator is not running as admin.
- Wait for process no longer needs Memory Validator to run as admin.
- Misc bug fixes.
Version 9.09, 17 February 2021
Version 9.09 includes the following functionality:
- Addition to "Error Reporting" settings. Option to turn on/off Critical Section multiple initialisation warnings. Default is Off.
- Bug fix for crash for x64 memory buffer overrun detect.
Version 9.08, 11 February 2021
Version 9.08 includes the following functionality:
- Bug fix for FALSE positive Incorrect deallocation report when deallocating a handle that has the same integer value as an OpenGL Texture or OpenGL List.
Version 9.07, 08 February 2021
Version 9.07 includes the following functionality:
- Some changes that will improve symbol handling. If you've had symbol handling errors recently these will help.
- New error handling for DbgHelp, recognising "unmatched" PDBs as well as "mismatched" PDBs.
- Additional error handling for svlDbgHelpSymbolReader.
- Bug fixes for shutdown to prevent a possible access violation. The crash is rare, but can happen.
Version 9.06, 01 February 2021
Version 9.06 includes the following functionality:
- Bug fix for Trace/OutputDebugString settings overwriting the time line buffer size.
- Bug fix for erroneous symbol path data from previous installs on a different path.
- New setting on Symbols Misc settings that allows additional debug information to be captured when svlDbgHelpSymbolReader.exe is used to read symbols.
Version 9.05, 28 January 2021
Version 9.05 includes the following functionality:
- Bug fix for automatic software updater. If you've been having problems with the automatic software updater, after you install this version (which you'll have to install manually) those problems should go away.
Version 9.04, 16 January 2021
Version 9.04 includes the following functionality:
- Updated Hotspot display. Replaced 4 subtabs with one combo with 9 different hotspot displays.
- Updated Timeline display. Replaced 6 subtabs with one combo with many different displays.
- Added lots of new timeline displays.
- Added timeline delay setting - 1, 2, 4, 5, 10 times per second.
- Bug fix for .Net timeline graphs.
- Performance increase for collecting .Net callstacks.
Version 9.03, 05 January 2021
Version 9.03 includes the following functionality:
- Ability to change the summary panel layout to show only native, only .Net, both native and .Net, and an adaptive version that onyl shows you summary data for what is in the collected data. This can provide a simpler to understand display when working with native or pure .Net code rather than mixed mode code.
- Addition of control over whether a .Net shutdown heap dump is performed. See Heap Dump settings.
- Updated High Contrast theme colours.
- Bug fix for serialization of .Net sessions.
Version 9.02, 28 December 2020
Version 9.02 includes the following functionality:
- Bug fix for short callstacks for Memory Corruption instrumentation.
- Performance improvement for hooking Uninitialised Data instrumentation.
- Performance improvement for hooking Deleted "this" instrumentation.
- Performance improvement for hooking Memory Corruption instrumentation.
- Bug fix for an error status that is sometimes uninitialised. Possibility of crash during hooking.
- Toolhelp snapshot improvements.
- Addition of UX theme selector on Settings menu. You can choose from Modern, Classic and High Contrast.
Version 9.01, 22 December 2020
Version 9.01 includes the following functionality:
- Bug fix for Hotspots
- Improved performance messages on summary tab
- Bug fix for ANSI thread naming.
Version 9.00, 26 November 2020
Version 9.00 includes the following functionality:
- Addition of support for .Net as well as native languages. Now you can profile Native, .Net and mixed mode programs.
- New API - you don't need to link to the API any more, just include one source file and one header file.
- New Software Verify UX Theme. Easier to use. Calmer to look at. New icons.
- Updated documentation.
Version 8.15, 14 November 2020
Version 8.15 includes the following functionality:
- Bug fix for potential crash when using Referenced Pointers and/or Referencing Pointers from the Memory tab and Analysis tabs.
- Change for launch dialog and launch wizard behaviour when text scaling is at 175% and dialogs are too large for a 1920x1080 screen. Small dialogs/wizards will be displayed. This is to help visually impaired users (that requested this change).
Version 8.14, 12 November 2020
Version 8.14 includes the following functionality:
- Bug fix for listing different versions of Visual Studio for the Editing settings - not all machines have this bug, seems to be to do with how Visual Studio is installed. This fixes works regardless of how VS is installed.
Version 8.13, 09 November 2020
Version 8.13 includes the following functionality:
- Bug fix for environment variable merging on launch dialog.
Version 8.12, 31 October 2020
Version 8.12 includes the following functionality:
- Bug fix for hooks for FindFirstFileExA() and FindFirstFileExW().
- Updated options for displaying data on the Display... dialog on the Memory tab. Now includes Leaks, Errors, Leaks and Errors.
- Bug fix for CriticalSection error detection.
Version 8.11, 26 October 2020
Version 8.11 includes the following functionality:
- Exported files now exported in UTF-16 to support non-ansi character sets like Chinese and Korean.
- Bug fix for symbol server PDB fetch failing sometimes.
- Bug fix for PDB reading failing sometimes.
Bug fix for crash with long symbol names introduced with V8.10. Sorry!
Version 8.10, 20 October 2020
Version 8.10 includes the following functionality:
- Improvements for text and graphics displays on 4K screens.
- Bug fix for filenames with non-ANSI characters in them (Chinese, Korean, etc).
- Improved support for testing applications that are directly (or indirectly) linked to DbgHelp.dll
Version 8.09, 08 October 2020
Version 8.09 includes the following functionality:
- Improved error handling dialogs for licence details dialog.
- Misc improvements.
Version 8.08, 28 September 2020
Version 8.08 includes the following functionality:
- Editing change - default editor is now "Automatic". It will try to open Visual Studio for editing. If that is not possible, it will use the built in editor.
- Bug fix to for incorrect data insertion into an array. Recommended download.
Version 8.07, 21 September 2020
Version 8.07 includes the following functionality:
- Performance improvement for tree controls.
- Performance improvement for handling messages automatically displayed on the Memory tab during a run - previous implementation could overload the Windows message queue and get very slow.
- Removed flicker on Memory tab when updating with many events.
- Additional information on diagnostic tab: process id, process account SID, process account user and domain
- Additional hooks for CreateProcessAsUserA(), CreateProcessAsUserW(), CreateProcessWithLogonW(), CreateProcessWithTokenW().
- Hooking child processes has been improved - now also monitors launches CreateProcessAsUser(), CreateProcessWithLogonW(), CreateProcessWithTokenW().
- This is a recommended download.
Version 8.06, 18 September 2020
Version 8.06 includes the following functionality:
- Bug fix for svlApplicationToMonitor hooking it's dependent DLLs (it should not do this).
- Bug fix for svlApplicationToMonitor preserving a command line in some circumstances.
- Bug fix for svlApplicationToMonitor uninitialised reserved pointer.
- Bug fix for and improved algorithm for detecting Software Verify DLLs
- Bug fix for attaching to any child process when child processes include both native and .Net processes.
- This is a recommended download.
Version 8.05, 14 September 2020
Version 8.05 includes the following functionality:
- Bug fix for incorrect allocations size being reported for _aligned_malloc() and related functions.
- Change to exception safe implementation for preventing extraneous memory allocation data being reported for specific situations.
Version 8.04, 01 September 2020
Version 8.04 includes the following functionality:
- UX change to Memory tab Display Settings dialog - make callstack grouping easier to understand.
- Additional user permissions tests for Everyone group on ISAPI related dialogs.
- UX improvements on ISAPI related dialogs.
Version 8.03, 15 August 2020
Version 8.03 includes the following functionality:
- Improved uninitialised data detection reporting.
Version 8.02, 14 August 2020
Version 8.02 includes the following functionality:
- Bug fix for uninitialised data detection.
- Memory buffer overrun detection.
- Bug fix for grid rendering. Fixes a rare crash.
- Many minor UX improvements.
- Bug fix for svlDbgHelpSymbolReader.exe not found in certain circumstances.
Version 8.01, 23 July 2020
Version 8.01 includes the following functionality:
- Bug fix for in-place Leak Detect.
Version 8.00, 07 July 2020
Version 8.00 includes the following functionality:
- Bug fix for crash with AddRef.
- UX improvement for Custom Hooks Dialog dll name.
- Loading/Saving session bug fix.
Version 7.99, 18 June 2020
Version 7.99 includes the following functionality:
- Bug fix for rare FALSE positive leak report.
- Source code displayed in trees is now displayed in monospaced font with highlighting.
Version 7.98, 08 June 2020
Version 7.98 includes the following functionality:
- Data on trees controls is now colour coded depending on the data. This makes the tree control easier to read.
Version 7.97, 20 May 2020
Version 7.97 includes the following functionality:
- This is a recommended download.
- Update to CoInitialize() and CoInitializeEx() warning handling based on behaviour seen in one complex customer application.
- Bug fix for ExitProcess() hooking and unhooking.
- Bug fix for Delphi hooks.
- Bug fix for SOCKET related hooks.
- Bug fix for delay loaded DLL hooking when delay load signature is not recognised.
- Bug fix for CreateIoCompletionPort().
- Bug fix for GetQueuedCompletionStatus().
- Bug fix for RegCreateKeyExA()
- Bug fix for RegCreateKeyExW()
- Bug fix for HeapCreate()
- Bug fix for CertOpenStore()
- Bug fix for CertOpenSystemStoreA()
- Bug fix for CertOpenSystemStoreW()
- Bug fix for CryptAcquireCertificatePrivateKey()
- Bug fix for CertCreateSelfSignCertificate()
- Bug fix for CryptGetMessageCertificates()
- Addition of a control (Error Reporting settings) to turn memory checking on/off for GetQueuedCompletionStatus(). Can be slow if enabled - depends on target program behaviour.
- GetLastError() preservation bug fixes for various hooks.
- Bug fix for shared memory reader shutdown.
Version 7.96, 13 May 2020
Version 7.96 includes the following functionality:
- Changed software architecture so that our monitoring code only uses one Thread Local Storage slot, leaving the all the others available to the target application. Previously used 31 slots.
- Bug fix for memory leak in Microsoft's CPngImage class. Replaced class with our implementation. We found this leak with C++ Memory Validator.
- Bug fix for setting environment vars via the command line, and also for %PATH% substitution in those environment variables.
- Documented the command line argument -environment var=value which you can use to set an environment variable for the program to be started. You can use this argument multiple times on a command line.
- Monitor a service dialog now checks the specified service is linked with the NT Service API.
- IIS ISAPI dialog now checks the specified ISAPI DLL is linked with the NT Service API.
- Bug fix for monitor ISAPI dialog and Web Development Server dialog.
- Option to close IIS/WDS when web browser closed added to monitor ISAPI dialog.
- Command files now support environment value expansion for any arguments to a command line value. For example -program %PROGRAM%
- Bug fix for crash deep inside ExitProcess.
Version 7.95, 05 May 2020
Version 7.95 includes the following functionality:
- Fixed bug to do with failure to record non-ISAPI data after working with ISAPI extensions.
- Addied CoInitializeEx() thread changed mode warning and ability to set appropriate defaults to prevent this happening.
- This is a recommended download.
Version 7.94, 22 April 2020
Version 7.94 includes the following functionality:
- Maintenance release. Previous version didn't get staged properly on website due to a version issue.
Version 7.93, 19 April 2020
Version 7.93 includes the following functionality:
- Support for IIS and ISAPI extensions. A new submenu IIS added to the Launch menu.
Version 7.92, 28 March 2020
Version 7.92 includes the following functionality:
- Improvements to the shared memory data transport. Previous implementations could suffer from very slow data processing due to excessively long timeouts on wait operations.
- Added a check at startup to check for paths that don't exist in the settings data so that you can fix them.
- Bug fix for very slow undecorating of symbols when they are long (templated functions, etc). In bad cases this was so slow it looked like the data transport had stopped working.
- This is a recommended download.
Version 7.91, 20 March 2020
Version 7.91 includes the following functionality:
- Bug fix for data race in data transport from target to GUI. In some circumstances the data transport may not start. Fixed.
- Bug fix for crash inside Toolhelp32 dll when getting list of DLLs. This is a very rare crash. Only seen once. Fixed.
- Bug fix for performance hog when calling OpenGL function SwapBuffers.
- Misc static analysis bug fixes.
- This is a recommended download.
Version 7.90, 10 March 2020
Version 7.90 includes the following functionality:
- Bug fix for Application to Monitor when handling a quoted application name in a command line passed to CreateProcess()
- Bug fix for Application to Monitor when handling a target path that has relative paths in it c:\dir1\dir2\..\dir3\test.exe
- Automatic scaling of toolbar and menu icons on high DPI screens - easier to use. These icons aren't perfect, but they will do until we release the designed set of high DPI icons.
- Some UX improvements relating to Symbol Servers and missing symbol server directory paths.
Version 7.89, 02 March 2020
Version 7.89 includes the following functionality:
Version 7.88, 07 February 2020
Version 7.88 includes the following functionality:
- Bug fix for DLL inspection component (fixes a crash in rare circumstances).
Version 7.87, 30 January 2020
Version 7.87 includes the following functionality:
- Improvement error detection reporting when working with services.
- Misc bug fixes and UX improvements.
- Bug fixes for when working with services and running the GUI as admin at the same time.
Version 7.86, 20 January 2020
Version 7.86 includes the following functionality:
- Bug fix: All calls to Turbo Debugger Symbols library are now thread safe. If you use C++ Builder and/or Delphi then you should download this software update.
- Performance improvement when accessing files.
Version 7.85, 14 January 2020
Version 7.85 includes the following functionality:
- Bug fix for race condition copying totals data.
- Bug fix for a crash that has always been present but which only made itself known with V7.84.
Version 7.84, 09 January 2020
Version 7.84 includes the following functionality:
- Bug fix for auto expand callstack settings.
- Bug fix/optimization for buffer overrun detection.
- Bug fix for deleted this detection.
- Bug fix for invalid this detection.
- Deleted this stack traces now show the trace where the deletion took place.
Version 7.83, 20 December 2019
Version 7.83 includes the following functionality:
- Added an option for simplification of the Memory View data display.
- Maintenance release. Misc bug fixes and UI/UX tweaks.
Version 7.82, 03 December 2019
Version 7.82 includes the following functionality:
- Bug fix for multi-threading. Ensuring threads are notified to end when they should be.
- Functionality change: Services will no longer try to start C++ Memory Validator from the service. To work with services start with C++ Memory Validator user interface already open.
Version 7.81, 25 November 2019
Version 7.81 includes the following functionality:
- Launch service dialog will not allow you to specify a service that's on a shared network drive because Windows won't start a service on a shared network drive.
- Bug fix for launch dialog when launching a service as an application.
- Bug fix for symbol server definition dialog.
- Bug fix for working with service from shared network drives.
Version 7.80, 16 October 2019
Version 7.80 includes the following functionality:
- Update to PEDLL helper library to detect DLLs linked to VB6.
- Change to symbol handler to report extra information when things go wrong.
- Improved error messages for mismatched PDB handling on Debug Information dialog.
- Bug fix for C++ parser.
Version 7.79, 09 October 2019
Version 7.79 includes the following functionality:
Version 7.78, 04 October 2019
Version 7.78 includes the following functionality:
- API change for mvLeakDetect(), it's a breaking change because we want the old behaviour to cease, rather than continue in a deprecated API.
- API_BLOCK_HEADER has had nLine and nDataSize data members reordered to match other structures in use.
- Maintenance release - fix API link issues in previous release.
Version 7.77, 02 October 2019
Version 7.77 includes the following functionality:
- Bug fix for reading a minority of PE files.
- Miscellaneous bug fixes.
Version 7.76, 09 September 2019
Version 7.76 includes the following functionality:
- Bug fix for memory pages and memory paragraphs display.
Version 7.75, 02 September 2019
Version 7.75 includes the following functionality:
- Bug fix for potential deadlock during shutdown (due to abandoned critical section caused by thread race).
Version 7.74, 30 August 2019
Version 7.74 includes the following functionality:
- Bug fix for debug info reporting for DLLs found in the Windows\assembly\NativeImages_v* directory.
Version 7.73, 20 August 2019
Version 7.73 includes the following functionality:
- Service description added to inject dialog listing that shows svchost.exe process.
- Bug fix for help file locating.
Version 7.72, 30 July 2019
Version 7.72 includes the following functionality:
- Bug fix for handling of the case where the source file exists, just not on the path indicated by debug info.
- Better handling (better UX) of the case where the source file exists, just not on the path indicated by debug info.
- Change of code to remove potential deadlock during shutdown phase of application being monitored.
- Launch dialog/wizard and Wait dialog/wizard indicate when file paths are invalid.
Version 7.71, 20th July 2019
Version 7.71 includes the following functionality:
- Addiition of option to query Symbol Path Truncation data from Tools menu.
- Launching applications, injecting into applications, waiting for applications, working with services and abandoning applications all moved onto their own Launch menu.
- Improvement to source code file location detection, removal of some redundant steps.
- Support for SetThreadDescription and GetThreadDescription thread naming APIs introduced with Windows 10.
- Bug fixes for using undocumented Windows internals to get data about threads.
Version 7.70, 11th July 2019
Version 7.70 includes the following functionality:
- Launching from batch file now lets you monitor any application launched from the batch file, not just the first application. Launch counts greater than 1 are also supported.
- Bug fix for monitoring applications launched from batch files.
- Diagnostic warning when search path is too long - paths that are too long cause Microsoft's DbgHelp.dll to crash.
- Bug fix, remove duplicate local symbol store directory from symbol path.
- Performance improvement for reading symbols of exe/dlls in write protected directories.
- Misc bug fixes.
Version 7.69, 19th June 2019
Version 7.69 includes the following functionality:
- Diagnostic tab now has two subtabs. One for diagnostic data. The other to display the output of stdout/stderr if you've opted to collect this data.
- Bug fix for C++ Parser.
- Bug fix for ordinal handling.
Version 7.68, 4th June 2019
Version 7.68 includes the following functionality:
- First run wizard will now take paths and symbol server settings from the selected Visual Studio's Debugging > Symbols section to populate Bug Validator's settings.
- Thread names are now taken from both CreateThread(), _beginthreadex() and _beginthread(). All threads now have human readable names as well as thread ids.
- Bug fix for Visual Studio discovery.
- Bug fix for ordinal -> name conversion (affects MFC libraries if symbol handlers not enabled).
- Support for InitializeCriticalSectionEx() - fixes some incorrect HANDLE deallocation warnings associated with DeleteCriticalSection().
- Bug fix for class name combo, file and line combo on filter dialogs. They are now correctly populated and sorted.
Version 7.67, 23rd May 2019
Version 7.67 includes the following functionality:
- Launch dialog and launch wizard now support the provision of an optional input file and an optional output file (to simulate piping data in/out from a file on the command prompt).
- Bug fix for display of data with watermarks.
- New watermark API mvSetWatermarkEx() which does the same as mvSetWatermark() but it specific to the thread it is called from - most likely a lot more useful than mvSetWatermark().
- Updated Watermark manager dialog.
- Updated Bookmark manager dialog.
- Bug fix for Memory Coverage.
- Symbols are now provided for callstacks inside ExitProcess() - you should see fewer cannot resolve symbols messages now.
- Bug fix for C++ parser.
- Bug fix for flickering of all Windows (not just Memory Validator) when start a session or destroy a session.
- Bug fix for correct assignment of data to watermark snapshots.
Version 7.66, 5th May 2019
Version 7.66 includes the following functionality:
- Auto name threads - these names will be used unless you name the threads using Thread Naming Exceptions.
- Mitigation for trying to access file on a not-present removable drive - if debug info points to a location on a removable drive that isn't present, OS file access times jump 250x - we've added code to detect this on critical paths and fail without trying to access the file. Prevent seemingly random unexpected slowdowns.
- Minor bug fixes to do with Visual Studio 2017/2019 detection.
- Bug fix for deadlock with Memory Coverage.
- Bug fix for possible data corruption (data access without lock).
Version 7.65, 29th April 2019
Version 7.65 includes the following functionality:
- Support for Visual Studio 2019.
- Bug fixes for C++ Parser.
- Changed "Objects" to be called "Types".
- Fixed the "no memory leaks" message on the Memory tab - it was being displayed too early, resulting in the wrong message being displayed.
Version 7.64, 13th April 2019
Version 7.64 includes the following functionality:
- DLL handles allocated by LoadLibrary() calls from inside Microsoft operating system DLLs are not tracked by default (you can enable this). This is to reduce the noise of DLL handles from LoadLibrary() where no FreeLibrary() call is seen.
- Improvements to how a DLL is determined to be a Microsoft DLL. Additional checks.
- Improvements to service callback example.
- Updated help return codes documentation.
- Bug fix for potential data corruption crash when working with the settings dialog if you change entries on the File Locations part of the settings dialog.
Version 7.63, 3rd April 2019
Version 7.63 includes the following functionality:
- Change to CreateThread() hook to simplify the hook and remove unusual behaviour identified in a customer supplied bug.
- Bug fix for race condition in some cached data stores. Quite rare for you to see this bug (we've seen it once in 17 years).
Version 7.62, 30th March 2019
Version 7.62 includes the following functionality:
- Performance improvements to various parts of instrumentation.
- Bug fix for HeapAlloc() statistics.
- Bug fix for global hook detector crash with sysfer.dll (McAfee anti-virus) during shutdown when run with -hideUI option.
Version 7.61, 21st March 2019
Version 7.61 includes the following functionality:
- Bug fix for loading / saving sessions that contain data for handle errors and memory errors.
- Addition of dbgcore.dll to the list of known Microsoft debugging DLLs - stops incorrect warning about missing PDB file.
Version 7.60, 9th March 2019
Version 7.60 includes the following functionality:
- Change to custom hooks. DLL field is now editable.
- Change to custom hooks. DLL path is displayed as a relative path (compared to path to Memory Validator), if that is possible.
- Addition of Export and Import to custom hooks.
- Modified settings behaviour to reduce dbgHelp.dll loadability testing.
Version 7.59, 4th March 2019
Version 7.59 includes the following functionality:
- Changed installer to not require administrator rights.
Version 7.58, 1st March 2019
Version 7.58 includes the following functionality:
- Bug fix to UI Global Hook Defeat mechanism. Stopped notification of DLLs with no Company Name.
- UX Fix. Combo boxes in grids will no longer forcibly realign the cell if just the cell border is not visible. Sounds like a small thing, but really improves usability.
- Addition to Service API svlMVStub_SetServiceCallbackThreshold(DWORD threshold); Threshold sets the number of seconds between calls to service callback threshold. 0..15. Default is 1.
- Performance improvement for stack walking.
- Visual Studio discovery performance improvement.
Version 7.57
Version 7.57 includes the following functionality:
- Filtering by DLL, performance improvement.
Version 7.56, 22nd February 2019
Version 7.56 includes the following functionality:
- Improvement for working with services - service control handler callback is called more often to inform the service control handler that code is still running and has not hung.
- Minor improvement for string handling, large performance improvement.
- Bug fix for potential buffer overflow with TDS symbol processing.
- Bug fix for potential buffer overflow with PDB symbol processing.
- Bug fix for memory leak.
- Brute force stack walker performance improvement.
- C++ Builder static function hooking performance improvement.
- This is a recommended download.
Version 7.55, 16th February 2019
Version 7.55 includes the following functionality:
- Data that is being discarded because it has been registered as deallocated (no longer leaked) and has outlived the Allocation History threshold is now delete on a dedicated thread. This means the previous thread that did this no longer has that overhead. Result -> improved performance.
- Memory Coverage now calculated on a dedicated thread, meaning less delays processing incoming data -> result higher performance.
- Bug fix for C++ parser.
- Bug fix for stack buffer overrun.
- Bug fix for COFF symbol reading that could cause a crash (depending on the COFF data).
Version 7.54, 2nd February 2019
Version 7.54 includes the following functionality:
- Bug fix for CryptAPI reallocation handling.
- Bug fix for NetAPIBuffer reallocation handling.
- Better statistics calculations.
- Additional performance improvements.
- Bug fixes from static analysis.
- Bug fix for VirtualFreeEx() statistics.
Version 7.53, 27th January 2019
Version 7.53 includes the following functionality:
- Removal of lazy type parsing option.
- Bug fix for type of deleted handle allocation.
- Minor performance improvements.
Version 7.52, 17th January 2019
Version 7.52 includes the following functionality:
- 80% performance improvement in our source code parser. Less CPU, less memory usage.
- Memory and handle events processed much faster. Performance increase of between 4x and 6x faster.
Version 7.51, 8th January 2019
Version 7.51 includes the following functionality:
- Improvement to how we detect uninitialised Critical Sections. Less false positives.
- Bug fix for misleading DLL handle leaks when the DLL can't be a leak (LoadlLibrary("kernel32.dll") can't leak - the DLL is always present)
- Bug fix for various memory leaks.
Version 7.50, 18th December 2018
Version 7.50 includes the following functionality:
- Addition of Data Highlighting options to settings dialog.
- Removal of Display... button and associated dialog from Allocations, Objects and Sizes displays.
- Bug fix for unwanted tracing data.
Version 7.49, 7th December 2018
Version 7.49 includes the following functionality:
- Bug fix for session has ended and finished processnig data detection - our previous method didn't account for processes ending unexpectedly.
- Minor UX changes.
Version 7.48, 29th November 2018
Version 7.48 includes the following functionality:
- New, more detailed Running Totals Dialog.
- Change to how we calculate statistics counts. Makes the counts more accurate. Deals wiith duplicate handles (for example DLLs) better.
- Minor changes to text.
- Changes to column ordering for Objects display.
- Changes to units display on Virtual tab to make easier to read.
- Improvement to Memory Coverage results for SelectObject(), duplicate handles, allocations not tracked because they failed, and a special case of VirtualFree().
Version 7.47, 14th November 2018
Version 7.47 includes the following functionality:
- Bug fix for installing and running on Windows XP, Windows Vista, Windows 7 and server equivalent versions.
- UX change to supported Visual Studio versions selector. Now checks if the particular DbgHelp.dll is deployable on this OS and does not list it if it won't load on this OS. Useful for the most recent DbgHelp.dll that only runs on Windows 8 and Windows 10.
Version 7.46, 6th November 2018
Version 7.46 includes the following functionality:
- Bug fix for monitoring child processes.
- Symbol search path displayed on Diagnostics tab.
Version 7.45, 31st October 2018
Version 7.45 includes the following functionality:
- Bug fix for overly optimized symbol path caching which broke symbol loading in some cases. This is a recommended download.
- Bug fix for enumerating processes.
- Bug fix for filter manager UI.
- Addition of filter show data/hide data controls to filter group view in filter manager.
- When launching processes with a native (unmanaged) entry point we now pass the Validator GUI process id directly as an argument. This allows multiple fast launches by different Validators to work without any potential interference from other Validators.
- Removal of hook for GetProcessWindowStation() as this hook is redundant.
- Bug fix for Show Data At... and Referencing/Referenced Pointers.
- Bug fix for wrong behaviour when expanding Tree/Grid control on the Memory tab.
- Bug fix for memory leak when global filters are defined.
Version 7.44, 18th October 2018
Version 7.44 includes the following functionality:
- Updated return code values. The values were off by one. This will not affect most users unless you are relying on the return codes when running from the command line.
- Addition of return code -74 to indicate that a memory leak was discovered when performing a comparison between a baseline session and the recorded session. Used when running from the command line.
Version 7.43, 5th October 2018
Version 7.43 includes the following functionality:
- Bug fix for SelectObject() handle leak detection - removed checking for Bitmaps as it seems these aren't affected by SelectObject().
- Addition of exception handling around C/C++ new/delete and malloc/free family of functions. This means if the allocator crashes due to corrupt data structures, MV will register an error and continue execution to try to send that error to the user interface.
- Bug fix to data transport. There was a race condition that meant that some sessions didn't record data.
Version 7.42, 2nd October 2018
Version 7.42 includes the following functionality:
- Bug fix for automatic software updates. If you cancelled an in-progress automatic software update, the licence keys could get broken. Now fixed.
- Bug fix possible for stack overflow that can occur when Compatibility mode is enabled to run a program that you a profiling. If you aren't using compatibility mode for your application you probably don't need this bug fix.
Version 7.41, 30th September 2018
Version 7.41 includes the following functionality:
- Performance improvement. Fix for an edge case with serious performance degradation.
Version 7.40, 28th September 2018
Version 7.40 includes the following functionality:
- Bug fix for deadlock that can occur if a symbol server is specified in an environment variable (for example _NT_SYMBOL_PATH) rather than via the settings dialog.
Version 7.39, 22nd September 2018
Version 7.39 includes the following functionality:
- Bug fix for Visual Studio editor failing to open first time.
- Error reporting on diagnostic tab for any errors with Visual Studio editor.
- Updated ordinal mapping for Visual Studio 2017.
- Updated example project solution and project files to support VS 2012, 2013, 2015, 2017.
- Addition of symbol server download progress notification on the Memory Validator title bar.
Version 7.38, 4th September 2018
Version 7.38 includes the following functionality:
- Bug fix for when Named Pipes are used for communicating when shared memory is not available - prevents the "flickering lockup" caused by too many erroneous "new session" messages. A rare bug to see, but game over if you do see it
- Bug fix for dll extension parsing.
- Bug fix for GDI handle leaks caught with the new SelectObject detector in C++ Memory Validator V7.38
Version 7.37, 21st August 2018
Version 7.37 includes the following functionality:
Version 7.36, 16th August 2018
Version 7.36 includes the following functionality:
- Misc bug fixes. Addition of range checking on some data conversion functions. Static analysis fixes.
Version 7.35, 10th August 2018
Version 7.35 includes the following functionality:
- UX improvement, disabling controls related to "Application to Monitor" when user launches a batch file. This will prevent incorrect settings from being incorrectly set when profiling an application launche from a batch file.
- Bug fix for fetching Delphi / C++ Builder line number information. Previous implementation could occasionally have bogus line numbers at a random address.
Version 7.34, 24th July 2018
Version 7.34 includes the following functionality:
- If we detect you're trying to launch a service as an application we inform you about NT Service API and provide options for launching as application or restart as admin so can launch as application in admin mode.
Version 7.33, 18th July 2018
Version 7.33 includes the following functionality:
- Bug fix for potential crash due to race condition during application shutdown.
- Bug fix for editing with Visual Studio
- Bug fix with C++ parsing for UNICODE encoded source files.
Version 7.32, 12th July 2018
Version 7.32 includes the following functionality:
- New implementation for mismatched allocation detection.
- Memory allocated by strdup(), wcsdup() and mbsdup() now reported as correct type and estimated memory size (used to be unknown size).
- Fixed a few more broken help topics.
Version 7.31, 2nd July 2018
Version 7.31 includes the following functionality:
- Modified all dialogs to make Help easier to find.
- Fixed many broken help topics. F1 or clicking on the ? at the top of a dialog will take you to the appropriate help.
Version 7.30, 7th June 2018
Version 7.30 includes the following functionality:
- Bug fix for install on Windows XP, Windows Vista.
- Bug fix for crash at shutdown (not everyone sees this crash).
Version 7.29, 6th June 2018
Version 7.29 includes the following functionality:
- Handle archiving now saves extra data
- LoadLibraryEx() flags are reported
- Bug fix to NT Service API
- PATH corruption bug fixes - rare to encounter this bug, requires a very specific set of circumstances
- When specifying environment variables on the launch dialog/wizard can use %PATH% to refer to previous version of PATH, allowing you to update the path.
- For example: %PATH%;e:\myPath\debug
- For example: e:\myPath\debug;%PATH%
- For example: e:\myPath\debug;%PATH%;e:\anotherPath\debug;
Version 7.28, 26th May 2018
Version 7.28 includes the following functionality:
- Bug fix for crash.
- UX improvement for "DLL Dependency Warning" dialog.
- Symbols are sent from stub to GUI using a new more efficient method.
Version 7.27, 18th May 2018
Version 7.27 includes the following functionality:
- Change to handling of shared memory data transport buffer limit throttling. Better performance.
- Many minor performance improvements, leading to a large overall performance improvement..
-
Version 7.26, 11th May 2018
Version 7.26 includes the following functionality:
- Addition of menus to Visual Studio for 2017, 2015, 2013, 2012, 2010.
- Bug fixes from static analysis.
- Allocation size reporting for GetEnvironmentStrings().
- Bug fix for objects and sizes stats per DLL (select the DLL subtab on Objects or Sizes). More, better, stats.
- Minor UX imrprovement..
- Bug fix for crash scanning datatypes.
- Bug fix for reading Embarcadero/Borland line numbers.
- Support for Embarcadero C Runtime libraries CC32230(MT).DLL, CC32240(MT).DLL, CC32250(MT).DLL, CC32260(MT).DLL and the RTL*.DLL equivalents.
Version 7.25, 17th April 2018
Version 7.25 includes the following functionality:
- Bug fix for launch dialog / wizard.
- Bug fix for File Locations settings (no duplicates allowed) on Settings dialog
- Improvement for allocation datatype. Previous entries that resulted in [NoFileName:0] will now be given the function name for that entry in the callstack. Not perfect, but better than a catch all NoFileName.
- Improvements to how symbols are searched for and loaded. Faster processing per module (DLL/EXE) as a result.
Version 7.24, 11th April 2018
Version 7.24 includes the following functionality:
- Bug fix for V7.23 when installing on Windows XP/ Windows XP x64. If you're not working with Windows XP, you can skip this update..
Version 7.23, 6th April 2018
Version 7.23 includes the following functionality:
- Tool settings are now stored in the HKCU\Software\SoftwareVerify hierarchy (moved from SoftwareVerification). This is a recommended download.
- Bug fix for resolving STABS symbols.
- Bug fix for resolving COFF symbols.
- Updated DbgHelp handling to recognise when a VS2015/VS2017 partial PDB file is found. A partial PDB is created by default for /DEBUG builds with VS2015 and VS2017.
- Bug fix for dependency checking for VC runtime files and MFC files not listed in a manifest.
- File extensions updated to recognise Fortran 90 files (.f90).
Version 7.22, 16th March 2018
Version 7.22 includes the following functionality:
- Addition of exe dependency logging.
- Bug fix for environment variable corruption. This is a recommended download.
Version 7.21, 9th March 2018
Version 7.21 includes the following functionality:
- Improved handling for installation of BorDebug.dll for processing 32 bit C++ Builder / Delphi applications.
- Bug fix for instrumentation.
Version 7.20, 7th March 2018
Version 7.20 includes the following functionality:
- Bug fix for handling LoadLibrary(Ex)/FreeLibrary(), could possibly result in repeated work when hooking.
- Bug fix for incorrect DLL handle leak reporting because of above mentioned LoadLibrary(Ex)/FreeLibrary() doube work.
Version 7.19, 27th February 2018
Version 7.19 includes the following functionality:
- Addition of logging for debugging worker thread functionality. Not customer accessible.
- Bug fix for when a native (unmanaged) application loads a .Net (managed) DLL. Prevents duplicate worker threads being created, prevents warning dialogs being displayed because of busy pipes.
Version 7.18, 22nd February 2018
Version 7.18 includes the following functionality:
- Change to how message routing is handling (from target application to GUI) to make work when SW_SHOWMINNOACTIVE is used by a a program to launch C++ Memory Validator.
- Changes to reduce any flicker when Validator is started with the command line argument -hideUI.
Version 7.17, 16th February 2018
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, 3rd February 2018
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, 10th January 2018
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, 6th January 2018
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, 28th December 2017
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, 22nd December 2017
Version 7.12 includes the following functionality:
Version 7.11, 24th November 2017
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, 21st November 2017
Version 7.10 includes the following functionality:
- Performance improvement for MAP file reading.
Version 7.09, 8th November 2017
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, 28th October 2017
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, 25th October 2017
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, 21st September 2017
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, 11th August 2017
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, 3rd August 2017
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, 16th June 2017
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, 13th June 2017
Version 7.02 includes the following functionality:
- Bug fix for stack walker. Very rare bug for anyone to encounter.
Version 7.01, 16th May 2017
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, 6th May 2017
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, 22nd April 2017
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, 31st March 2017
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, 17th February 2017
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, 14th February 2017
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, 21st January 2017
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, 22nd December 2016
Version 6.94 includes the following functionality:
- Bug fix for hooking function epilogues.
Version 6.93, 20th December 2016
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, 14th December 2016
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, 5th December 2016
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, 3rd December 2016
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, 25th November 2016
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, 21st November 2016
Version 6.88 includes the following functionality:
- Instrumentation improvements.
- Multi-threading security improvements.
Version 6.87, 5th November 2016
Version 6.87 includes the following functionality:
- Improved launch instrumentation. Handling race conditions in CreateProcess() with SUSPENDED flag.
Version 6.86, 3rd November 2016
Version 6.86 includes the following functionality:
- Updated software update error handling.
- Improved code instrumentation.
Version 6.85, 26th October 2016
Version 6.85 includes the following functionality:
Version 6.84, 25th October 2016
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, 20th October 2016
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, 6th October 2016
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, 2nd October 2016
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, 27th September 2016
Version 6.79 includes the following functionality:
- Some improvements to multi-threaded data integrity.
Version 6.78, 19th September 2016
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, 7th September 2016
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, 1st September 2016
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, 10th August 2016
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, 23rd July 2016
Version 6.74 includes the following functionality:
- Static analysis bug fix update.
Version 6.73, 18th July 2016
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, 21st June 2016
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, 11th June 2016
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, 27th May 2016
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, 19th May 2016
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, 7th May 2016
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, 16th April 2016
Version 6.66 includes the following functionality:
- Bug fix for disassembler DLL update.
- Internal: Addition of auto tester for stress testing.
Version 6.65, 13th April 2016
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, 8th April 2016
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, 2nd April 2016
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, 17th March 2016
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, 4th March 2016
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, 29th February 2016
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, 16th February 2016
Version 6.58 includes the following functionality:
- Bug fix for floating licencing.
Version 6.57, 12th February 2016
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, 29th January 2016
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, 24th December 2015
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, 18th December 2015
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, 10th December 2015
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, 27th November 2015
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, 21st November 2015
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, 25th October 2015
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, 16th October 2015
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, 1st October 2015
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, 18th September 2015
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, 6th September 2015
Version 6.45 includes the following functionality:
- Bug fix for error message.
Version 6.44, 29th August 2015
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, 26th August 2015
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, 7th August 2015
Version 6.42 includes the following functionality:
Version 6.41, 1st August 2015
Version 6.41 includes the following functionality:
- Support for Visual Studio 2015
- Bug fix for command line options processing.
Version 6.40, 23rd July 2015
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, 14th July 2015
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, 3rd July 2015
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, 23rd June 2015
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, 11th June 2015
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, 2nd June 2015
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, 15th May 2015
Version 6.34 includes the following functionality:
- Bug fix for deleted "this" pointer detection.
Version 6.33, 12th May 2015
Version 6.33 includes the following functionality:
- Improved launch handling of mixed mode .Net modules.
- Improved Windows Firewall handling.
Version 6.32, 25th April 2015
Version 6.32 includes the following functionality:
- Better support for reading Embarcadero/Borland TDS files. (C++Builder / Delphi)
-
Version 6.31, 17th April 2015
Version 6.31 includes the following functionality:
- Static analysis improvements.
- Minor bug fixes.
Version 6.30, 10th April 2015
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, 30th March 2015
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, 24th March 2015
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, 18th March 2015
Version 6.27 includes the following functionality:
- Bug fix for floating licensing.
Version 6.26, 13th March 2015
Version 6.26 includes the following functionality:
- Bug fix for Windows 7 crash when hooking.
Version 6.25, 7th March 2015
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, 18th February 2015
Version 6.24 includes the following functionality:
- Minor UX improvements.
- Exception safety for disassembler.
Version 6.23, 4th February 2015
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, 28th January 2015
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, 5th January 2015
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, 21st November 2014
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, 16th November 2014
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, 3rd October 2014
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, 11th September 2014
Version 6.17 includes the following functionality:
- Bug fix for software update installer.
Version 6.16, 22nd August 2014
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, 11th August 2014
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, 6th August 2014
Version 6.14 includes the following functionality:
- Support for Visual Studio 2014 CTP
Version 6.13, 25th July 2014
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, 16th July 2014
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, 7th July 2014
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, 20th June 2014
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, 14th June 2014
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, 4th June 2014
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, 25th May 2014
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, 22nd March 2014
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, 19th March 2014
Version 6.05 includes the following functionality:
- Maintenance release.
- Improved PE File reader.
- Bug fix for attaching to .Net processes.
Version 6.04, 5th March 2014
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, 11th February 2014
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, 1st February 2014
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, 14th January 2014
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, 2nd January 2014
Version 6.00 includes the following functionality:
- Release of new 64 bit and 32 bit version of C++ Memory Validator.
Version 5.84, 24th December 2013
Version 5.84 includes the following functionality:
- Bug fix for incorrect return value from SymGetModuleInfo(64) DbgHelp.dll API
Version 5.83, 19th December 2013
Version 5.83 includes the following functionality:
- Bug fix for broken resources in some user interface components.
Version 5.82, 13th December 2013
Version 5.82 includes the following functionality:
- Bug fixes for Pages and Analysis tab interaction.
- Bug fix for hooking.
Version 5.81, 10th December 2013
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, 4th December 2013
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, 21st November 2013
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, 9th November 2013
Version 5.78 includes the following functionality:
- Bug fix for incorrect heap deallocation (causing exception) in CreatePalette hook.
Version 5.77, 8th November 2013
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, 5th November 2013
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, 15th October 2013
Version 5.75 includes the following functionality:
- Editor settings dialog bug fix.
- Subst drives settings dialog bug fix.
Version 5.74, 27th September 2013
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, 24th September 2013
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, 14th September 2013
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, 3rd September 2013
Version 5.71 includes the following functionality:
- Collection, reporting and exporting of additional information about GDI handles.
Version 5.70, 23rd August 2013
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, 13th August 2013
Version 5.69 includes the following functionality:
- Bug fix for zero length callstacks.
Version 5.68, 9th August 2013
Version 5.68 includes the following functionality:
- Misc software bug fixes.
- New help file builder.
Version 5.67, 27th July 2013
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, 11th July 2013
Version 5.66 includes the following functionality:
- Provisional support for Visual Studio 2013.
Version 5.65, 25th June 2013
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, 19th June 2013
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, 6th June 2013
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, 24th May 2013
Version 5.62 includes the following functionality:
- Bug fix for crash in symbol handler.
Version 5.61, 16th May 2013
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, 29th April 2013
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, 11th April 2013
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, 9th April 2013
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, 26th March 2013
Version 5.57 includes the following functionality:
- Support for VS2012, .Net Framework 4.5.
- Bug fix for Tips dialog.
Version 5.56, 13th March 2013
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, 13th March 2013
Version 5.55 includes the following functionality:
- New debugging symbols handler. Faster, more robust, more fault tolerant.
Version 5.54, 9th February 2013
Version 5.54 includes the following functionality:
- Bug fix for broken keygen for eval/beta versions.
- Bug fix for buffer overrun.
Version 5.53, 8th February 2013
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, 23rd January 2013
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, 16th January 2013
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, 6th January 2013
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, 4th January 2013
Version 5.49 includes the following functionality:
- Bug fix for buffer overrun.
Version 5.48, 3rd January 2013
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, 7th December 2012
Version 5.47 includes the following functionality:
- Bug fix for statistics calculation on Memory View tab.
Version 5.46, 5th December 2012
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, 13th November 2012
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, 19th October 2012
Version 5.44 includes the following functionality:
- Deadlock bug fix for long queue hysterisis throughput.
Version 5.43, 18th October 2012
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, 9th October 2012
Version 5.42 includes the following functionality:
- Bug fixes after static analysis work.
Version 5.41, 14th September 2012
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, 14th August 2012
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, 29th July 2012
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, 2nd July 2012
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, 27th June 2012
Version 5.37 includes the following functionality:
- Bug fix for callstack filtering.
- Bug fixes from static analysis tool.
- Editing tool upgrade.
Version 5.36, 19th June 2012
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, 15th June 2012
Version 5.35 includes the following functionality:
- Bug fix for Visual Studio editing.
- More improvements from static analysis work.
Version 5.34, 11th May 2012
Version 5.34 includes the following functionality:
- Bug fix for -commandFile command line argument handling.
Version 5.33, 8th May 2012
Version 5.33 includes the following functionality:
- Bug fix for launching progams from the command line with the -allArgs argument.
- Bug fix for memory coverage.
Version 5.32, 2nd May 2012
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.
- Change to command line behaviour - unrecognised arguments are ignored. Use -allArgs instead.
Version 5.31, 19th February 2012
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, 14th January 2012
Version 5.30 includes the following functionality:
- Bug fix for URL encoding when talking to software update server.
Version 5.29, 6th January 2012
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, 22nd December 2011
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, 16th December 2011
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, 10th December 2011
Version 5.26 includes the following functionality:
- Updated self-installer to handle additional security checks for some computer systems.
Version 5.25, 7th December 2011
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, 3rd December 2011
Version 5.24 includes the following functionality:
- Addition of software update code.
Version 5.23, 19th October 2011
Version 5.23 includes the following functionality:
- Bug fix for working with .Net services.
Version 5.22, 12th October 2011
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, 5th October 2011
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:
Version 5.19, 21st September 2011
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, 19th August 2011
Version 5.18 includes the following functionality:
- Bug fix for crash during shutdown.
Version 5.17, 1st August 2011
Version 5.17 includes the following functionality:
- Improved "Symbol Lookup" Visual Studio chooser based upon user feedback.
- Bug fix for SysAllocString().
Version 5.16, 22nd June 2011
Version 5.16 includes the following functionality:
- Low data processing race condition bug fix.
Version 5.15, 21st June 2011
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, 17th May 2011
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, 28th April 2011
Version 5.13 includes the following functionality:
- New Sizes tab.
- New layout for most main tabs, simplifying and improving workflow.
Version 5.12, 19th April 2011
Version 5.12 includes the following functionality:
- Bug fix for MingW stabs debug information reading.
- New menu implementation, addition of bitmaps.
Version 5.11, 13th April 2011
Version 5.11 includes the following functionality:
- Bug fix for COMCTL32.DLL bitmap handling.
Version 5.10, 1st April 2011
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, 21st March 2011
Version 5.09 includes the following functionality:
- Bug fix for VirtualAlloc(Ex) data corruption/crash.
Version 5.08, 17th March 2011
Version 5.08 includes the following functionality:
- Bug fix for unwanted disk FindFirstFile.
- Improved COFF/STABS symbol handling.
Version 5.07, 11th March 2011
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.06, 2nd March 2011
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, 6th February 2011
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, 4th February 2011
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, 29th December 2010
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.02, 3rd November 2010
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, 22nd September 2010
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, 11th August 2010
Version 5.00 includes the following functionality:
- 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, 3rd August 2010
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 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, 30th July 2010
Version 4.98 includes the following functionality:
Version 4.97, 3rd July 2010
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, 4th June 2010
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, 24th May 2010
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, 21st April 2010
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, 25th March 2010
Version 4.93 includes the following functionality:
- 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, 2nd March 2010
Version 4.92 includes the following functionality:
- Bug fix for environment variable handling.
- Bug fix for license installer software.
Version 4.91, 18th February 2010
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.
- Bug fix for load/save settings.
Version 4.90, 7th January 2010
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.89, 21st December 2009
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, 13th November 2009
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, 5th November 2009
Version 4.87 includes the following functionality:
- 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, 26th October 2009
Version 4.86 includes the following functionality:
- New implementation of Memory Coverage tab.
- Bug fix: Improved detection of placement operator new.
- Bug fix for Delphi memory hooks.
Version 4.85, 23rd September 2009
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, 2nd September 2009
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, 18th August 2009
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, 10th August 2009
Version 4.82 includes the following functionality:
- Bug fix for long delay when hooking certain applications at startup.
Version 4.81, 14th July 2009
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, 14th July 2009
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, 25th March 2009
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, 6th March 2009
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.77, 6th March 2009
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, 14th February 2009
Version 4.76 includes the following functionality:
- Bug fix for serialization bug introduced with Memory Validator V4.74.
Version 4.75, 30th January 2009
Version 4.75 includes the following functionality:
- Bug fix for session comparison dialog.
Version 4.74, 23rd January 2009
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, 14th January 2009
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, 9th December 2008
Version 4.71 includes the following functionality:
- 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, 24th November 2008
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, 23rd October 2008
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, 1st October 2008
Version 4.68 includes the following functionality:
Version 4.67
Version 4.67 includes the following functionality:
- Bug fix for interaction between Memory Validator and MSDIA80.DLL.
- 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.
Version 4.65
Version 4.65 includes the following functionality:
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:
- 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.
- 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.
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:
- 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:
- 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.
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.
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:
- 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.
- 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.
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.
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:
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:
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).
-
- 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.
- Filtering improved to allow COM Reference Count filtering by COM object address.
-
-
-
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:
- 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:
Version 3.85
Version 3.85 includes the following new functionality:
- 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:
- 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:
- 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:
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:
- 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:
- 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.
Version 3.28
Version 3.28 includes the following new functionality:
- 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:
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:
- 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:
Version 3.22
Version 3.22 includes the following new functionality:
- Addition of filename and line number support for Salford Software's FORTRAN95.
Version 3.21
Version 3.21 includes the following new functionality:
Version 3.20
Version 3.20 includes the following new functionality:
- 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.
- Inject dialog remembers the name of last injected process and pre-selects this process the next time the Inject dialog is used.
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:
- 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:
- 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 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:
- 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.
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 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:
Version 2.93
Version 2.93 includes the following new functionality:
Version 2.92
Version 2.92 includes the following new functionality:
Version 2.91
Version 2.91 includes the following new functionality:
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:
- 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:
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:
- 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:
- 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:
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:
- 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:
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 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 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.
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:
- 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.05
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.
Version 1.00
Version 1.00 includes the following fixes: