C++ Memory Validator Change History
Version 5.27
Version 5.27 includes the following functionality:
- Bug fix for software updater throwing MFC exception on some systems.
Version 5.26
Version 5.26 includes the following functionality:
- Updated self-installer to handle additional security checks for some computer systems.
Version 5.25
Version 5.25 includes the following functionality:
- Bug fix for memory corruption leading to crash when monitoring VirtualAlloc(Ex)/VirtualFree(Ex).
- Addition of datatypes for use with Objects/Sizes tabs when monitoring VirtualAlloc(Ex)/VirtualFree(Ex).
- XML export rendering improvement - now readable with just a text editor
Version 5.24
Version 5.24 includes the following functionality:
- Addition of software update code.
Version 5.23
Version 5.23 includes the following functionality:
- Bug fix for working with .Net services.
Version 5.22
Version 5.22 includes the following functionality:
- Removal of Novice user interface mode.
- Bug fix for filters dialog - Objects.
- Bug fix for Lrequest data.
- Bug fix for working with Windows 7 services.
Version 5.21
Version 5.21 includes the following functionality:
- Bug fix for local filters.
- Improved Symbol Server support - workaround for hang caused by WinInet global Mutexs.
- New tutorial tab and additional option on Help menu.
Version 5.20
Version 5.20 includes the following functionality:
Version 5.19
Version 5.19 includes the following functionality:
- Tutorials moved to the website. Tutorial link always available from help menu and at startup.
Version 5.18
Version 5.18 includes the following functionality:
- Bug fix for crash during shutdown.
Version 5.17
Version 5.17 includes the following functionality:
- Improved "Symbol Lookup" Visual Studio chooser based upon user feedback.
- Bug fix for SysAllocString().
Version 5.16
Version 5.16 includes the following functionality:
- Low data processing race condition bug fix.
Version 5.15
Version 5.15 includes the following functionality:
- New file missing dialog implementation.
- Bug fix for code instrumentation.
- Bug fix for uninitalised data detection error reporting.
Version 5.14
Version 5.14 includes the following functionality:
- Bug fix for crash in data investigation dialog.
- Bug fix for buffer overrun on session export dialog.
Version 5.13
Version 5.13 includes the following functionality:
- New Sizes tab.
- New layout for most main tabs, simplifying and improving workflow.
Version 5.12
Version 5.12 includes the following functionality:
- Bug fix for MingW stabs debug information reading.
- New menu implementation, addition of bitmaps.
Version 5.11
Version 5.11 includes the following functionality:
- Bug fix for COMCTL32.DLL bitmap handling.
Version 5.10
Version 5.10 includes the following functionality:
- Bug fix for disassembler using sprintf during target application shutdown after the CRT has unloaded.
- Bug fix for DLL missing warning when injecting on systems without older versions of Visual Studio.
- Bug fix for Memory Validator API stack walking.
- Memory Validator API definitions changed to accomodate C linkage as well as C++ linkage.
- Memory Validator API documentation changed to include x64 and x86 processors.
- Inject, Launch and Wait wizard layouts changed to be more industry standard behaviour.
- Bug fix for CommandLineToArgvW() on Windows XP and above.
- Context menus edited to reduce menu choices and improve user experience.
Version 5.09
Version 5.09 includes the following functionality:
- Bug fix for VirtualAlloc(Ex) data corruption/crash.
Version 5.08
Version 5.08 includes the following functionality:
- Bug fix for unwanted disk FindFirstFile.
- Improved COFF/STABS symbol handling.
Version 5.07
Version 5.07 includes the following functionality:
- Bug fix for memory timeline.
- Bug fix for VirtualAlloc() handling.
- Bug fix for DbgHelp.dll specification.
- Additional techniques for identifying Visual Studio installs.
- Bug fix for tracking printer handles.
Version 5.06
Version 5.06 includes the following functionality:
- Reduced mouse cursor flicker.
- Bug fix for race condition when starting second or subsequent session, could cause possible crash.
- Fix minor bug fixes.
- When run from the command line using command line options the return code is now the return code of the most recently run app.
Version 5.05
Version 5.05 includes the following functionality:
- Bug fix for user defined memory reallocation.
- Change of behaviour for symbol server dialog.
- Change of behaviour for VirtualAlloc(Ex)/VirtualFree(Ex) handling.
- Bug fix for OpenGL related data collection crash in special circumstances.
Version 5.04
Version 5.04 includes the following functionality:
- Support for mixed-mode .Net services.
- New communications architecture.
- New hook for OpenProcessToken().
- New handling for dbghelp.dll and different versions of Visual Studio.
- Bug fix for tracking data inside WndProc.
- Bug fix for passing wrong DC to Release() or DeleteDC().
Version 5.03
Version 5.03 includes the following functionality:
- New dedicated graphical timeline view to replace the old timeline subtab on the Virtual view.
- New Memory and Handles subtabs on Hotspots view.
- Support for .Net framework 4, CLR 4.
- Bug fix for callstack walking for some mixed mode apps.
- More robust callstack walking for all applications.
- Updated help to match the above changes.
Version 5.02
Version 5.02 includes the following functionality:
- Bug fix for Virtual Timeline.
- Bug fix for SafeArrays.
- Filter comment updated when modifying filter.
- Bug fix for filters when specifying instant or temporary filters with index into callstack.
- Minor improvment to Export Session Dialog.
Version 5.01
Version 5.01 includes the following functionality:
- Various bug fixes from the x64 porting work.
- Bug fix for filter by symbol name.
- Bug fix for filter by class name.
- Bug fix for random crash while shutting a session.
- Bug fix for memory overrun in exceptional circumstances in stub.
Version 5.00
Version 5.00 includes the following functionality:
- Bug fix for early detach from target application during shutdown inside ExitProcess(). Can cause (in certain applications) certain deallocation data to not be sent to MV user interface, resulting in what looks like leaks.
- Bug fix for DbgHelp.dll crash inside ExitProcess on Windows 7 (only affects some applications). A side effect of this bug is that some memory can be reported as a leak when it is not a leak.
- Major performance improvement if you are using the memory monitoring API and you are collecting significant amounts of data using this API.
Version 4.99
Version 4.99 includes the following functionality:
- Bug fix for statically linked realloc() data tracking.
- Bug fix for statically linked realloc() data tracking when passing NULL as the address to realloc.
- Addition of tag tracker selection to Find Memory dialog box on Analysis tab.
- Addition of thread id selection to Find Memory dialog box on Analysis tab.
Version 4.98
Version 4.98 includes the following functionality:
Version 4.97
Version 4.97 includes the following functionality:
- Bug fix for profiling mixed-mode .Net applications when running on a 64 bit operating system.
Version 4.96
Version 4.96 includes the following functionality:
- Memory Coverage information now stored in dedicated folders.
- Additional information on the diagnostic tab.
- Additional information in exception reports.
- Bug fix for reading stabs debug information from MingW4.4 compiler (handles relative filenames correctly).
- Bug fix for reading COFF debug information from MingW4.4 compiler (Performance improvement).
- Bug fix for Memory Coverage for Borland Debug, COFF and Stabs.
Version 4.95
Version 4.95 includes the following functionality:
- Support for Windows 7 KernelBase.dll hooking.
- Support for editing with VS 2010.
- Bug fix for editing with VS 2008
- Bug fix for session filters and global filters.
- Bug fix for GetProcAddress() hooking.
- Bug fix for MinGW symbol handling.
- Bug fix for crash fetching long .Net symbols in mixed mode applications.
- Bug fix for Delphi hooking.
Version 4.94
Version 4.94 includes the following functionality:
- Objects tab, change to % Size value calculation to give a more useful value..
- Bug fix for Objects tab, Types and Sizes data displays, watermarks subtab.
- Bug fix for template type name calculations - templates that use templates now give correct type names.
- Bug fix for watermarks not displaying if watermark created as first ever data item (via API or GUI).
Version 4.93
Version 4.93 includes the following functionality:
- Bug fix for handle leak with ToolHelp32.
- Bug fix for failure with socket() when incorrectly hooking resource DLLs that have more than one section (example: mfc80enu.dll).
Version 4.92
Version 4.92 includes the following functionality:
- Bug fix for environment variable handling.
- Bug fix for license installer software.
Version 4.91
Version 4.91 includes the following functionality:
- Improved handling of "Allocation Greater Than" breakpoint handling.
- New option on the callstack collection settings dialog - the ability to discard entries at the start of a callstack that have no module, no function name
and no filename - these are often .Net trampoline functions from .Net code into native code.
- Improved handling of mixed mode .Net applications - specifically .Net applications that call unmanaged code directly from .Net code.
- Version checking for DbgHelp.dll - status and any warning messages displayed on Diagnostic tab.
- Bug fix for load/save settings.
Version 4.90
Version 4.90 includes the following functionality:
- Improved type information so that when no filename available, type information is supplied as the class::method name - this is more useful than [NoFileName:0].
- Bug fix for incorrect message map entry on coverage view. This potentially could lead to a crash.
- Bug fix for Memory Coverage Auto Merge configure dialog.
Version 4.89
Version 4.89 includes the following functionality:
- Minor UI changes to add user hints.
- All executables are now code signed to prevent warnings on Vista / Windows 7.
Version 4.88
Version 4.88 includes the following functionality:
- Performance improvement for Memory Coverage.
- Provisional support for Visual Studio 2010 B2.
- Bug fix for reading various types of malformed DLLs.
- Correct detection of Resource only DLLs.
Version 4.87
Version 4.87 includes the following functionality:
- Changed colours for some displays to improve readability.
- Bug fix for hang during install on Windows Server 2003.
- Bug fix for C/C++ parsing.
Version 4.86
Version 4.86 includes the following functionality:
- New implementation of Memory Coverage tab.
- Bug fix: Improved detection of placement operator new.
- Bug fix for Delphi memory hooks.
Version 4.85
Version 4.85 includes the following functionality:
- Updated source code editor.
- Bug fix for Hotspots view <UNKNOWN> symbols.
- Support for launching batch files as well as executable. First application launched by batch file will be monitored.
- Bug fix for data corruption when loading mvm files.
- Bug fix for static CRT hooking for Visual Studio 2005/2008.
- Bug fix for static CRT hooking for Borland C++.
Version 4.84
Version 4.84 includes the following functionality:
- Bug fix for serialization.
- Bug fix for Trace/OutputDebugString(A)(W)
- Change of behaviour for applications launched via command line. Applications that are not hidden are now launched with
no-activate status so that although they are visible they do not grab the focus.
- Bug fix for CreatePipe hook.
Version 4.83
Version 4.83 includes the following functionality:
- Update to status messages on Memory tab to improve usability.
- Bug fix for shutdown handling to prevent busy wait with DbgHelp.
- Bug fix for advanced DbgHelp symbol handling.
- Bug fix for Windows Symbols PDB Paths handling on launch dialog.
Version 4.82
Version 4.82 includes the following functionality:
- Bug fix for long delay when hooking certain applications at startup.
Version 4.81
Version 4.81 includes the following functionality:
- Support for OpenGL32.
- Hooked DLLs, sorted DLLs in list.
- Bug fix for custom hooks, now obeys global collect data settings.
- Bug fix for side-effect changing last error status in GetProcAddress() hook.
- Bug fix for Memory Validator holding on to DLL handles even when sessions deleted.
- Misc bug fixes.
- Bug fix for data corruption when using global filters dialog.
Version 4.80
Version 4.80 includes the following functionality:
- Bug fix for delay load hooking of Winsock DLLs by MFC 8.0
- Bug fix for session export to HMTL and XML.
Version 4.79
Version 4.79 includes the following functionality:
- Addition of new command line argument. -launchAppHidden. Causes the program started with -program to run hidden.
- Minor tip of day bug fix.
- Minor gui fixes.
- Columns re-ordered on Hotspots tab to provide better information visualisation.
- Bug fix to C++ parser, resulting in better object type detection.
Version 4.78
Version 4.78 includes the following functionality:
- Bug fix for data corruption caused by incorrect data item being deleted - bug only happens when collectings CRT data
and collecting other types of memory data AND a particular sequence of allocations occurs in a certain order.
- Minor bug fixes.
Version 4.77
Version 4.77 includes the following functionality:
- Bug fix for DLLs combo on Objects tab.
- Bug fix for session comparison dialog.
- Bug fix for licensing bug.
- Bug fix for Semaphore close bug - preventing comms between test application and Memory Validator GUI on
some computers.
Version 4.76
Version 4.76 includes the following functionality:
- Bug fix for serialization bug introduced with Memory Validator V4.74.
Version 4.75
Version 4.75 includes the following functionality:
- Bug fix for session comparison dialog.
Version 4.74
Version 4.74 includes the following functionality:
- Bug fix for possible deadlock when tracking restricted range of allocation sizes.
- Bug fix for data member detector crash when using Visual Studio 2005 (or later) and uninit data detection.
Version 4.73
Version 4.73 includes the following functionality:
- Modified Inject dialog to be resizable and remember which column it sorts on and previous selection.
- Bug fix for crash on hotspot view.
Version 4.72
Version 4.72 includes the following functionality:
- Bug fix for launching on Windows Vista and Windows 2008.
Version 4.71
Version 4.71 includes the following functionality:
- Bug fix for data race on objects tab.
- Bug fix for COM AddRef/Release tracking.
- Bug fix for obscure "The Handle is invalid." error message that can happen during launch.
- Bug fix for launching on Windows Vista and Windows 2008.
- Various usability improvements to address conflicting settings that can be chosen in the settings dialog.
- Updated API. Addition of svlDataTracker C++ class definition.
- Updated help to match new UI.
- Updated tutorial to match new UI.
Version 4.70
Version 4.70 includes the following functionality:
- Updated filter dialog, updated help.
- Updated callstack filter behaviour - now supports filter from root and filter from leaf.
- Bug fix for filters and objects updating on Objects tab.
- Code hooking rationalisation.
- Bug fix for crash in strdup() and wcsdup() when Memory Validator is working release builds that call strdup() or wcsdup() with a NULL pointer.
- Bug fix for working with mixed-mode .Net DLLs. MV now tracks data in mixed-mode DLLs and DLLs loaded from mixed mode DLLs.
- Bug fix for data corruption in tree/grid control class hierarchy.
Version 4.69
Version 4.69 includes the following functionality:
- Bug fix for data corruption when updating watermarks.
- Bug fix for race condition for GDI stub data.
- Bug fix for false positive leak report for CToolTipCtrl Window handles.
Version 4.68
Version 4.68 includes the following functionality:
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.64
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.60
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 Verification 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.56
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.52
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.39
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.35
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.31
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.27
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.14
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.10
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.06
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.02
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 - not released
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.55
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.53
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.51
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.32
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.30
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.28
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.26
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.07
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.