The Failed Allocations tab allows you to control how Memory Validator responds to allocations that fail to allocate memory or fail to allocate handles.
The picture below shows the default settings:
Some handle allocation functions return the same value as a previous handle, even though the previous one hasn't been deallocated.
Memory Validator can accommodate this, but cannot guarantee to match up the correct allocation and deallocation location for these handles (since they are duplicates).
You can choose if the values are resolved first in first out (FIFO), or last in first out (LIFO). This will affect how duplicate handle deallocation and allocation stack traces are related.
•Track duplicate handles enable the tracking of duplicate handles (default)
Duplicates removed LIFO resolves duplicate deallocation handle values in a last in first out manner (default)
Only enabled if tracking duplicate handles.
NULL/invalid handles
Memory Validator can collect or discard NULL and INVALID_HANDLE_VALUE handles. If you are having problems with bad handle values, you may want this option enabled.
•Collect NULL and invalid handles enable collection of invalid handle values
When handles are closed using CloseHandle(), some non-valid handles can cause your application to crash if they are passed in. Memory Validator detects if the handle is not a valid handle and reports errors.
•Don't call CloseHandle... prevent non-valid handles from being passed to CloseHandle()
The recommended setting is off, meaning that CloseHandle() will always be called
Reset All - Resets all global settings, not just those on the current page.
Reset - Resets the settings on the current page.