Some of the displays show icons on the left border to indicate the type of data associated with that line.
Explanatory tooltips are shown over the icons in the Memory and Analysis views:
There are a few recurring shapes you will find in the icons:
allocation
deallocation
reallocation
The full suite of icons are shown below in groups, and with a very brief explanation.
General |
option enabled option disabled line corresponding to allocation/reallocation/deallocation source code |
CRT Heaps |
malloc(), calloc(), new free(), delete realloc() |
Win32 Heaps |
HeapAlloc() HeapFree() HeapRealloc() |
Handles |
handle creation handle destruction |
GlobalAlloc |
GlobalAlloc() GlobalFree() GlobalRealloc() |
LocalAlloc |
LocalAlloc() LocalFree() LocalRealloc() |
CoTaskMemAlloc |
CoTaskMemAlloc() CoTaskMemFree() CoTaskMemRealloc() |
IMallocSpy |
IMallocSpy allocation IMallocSpy deallocation IMallocSpy reallocation |
SysAllocString (BSTR) |
SysAllocString() SysFreeString() (and ::VariantClear() used to free BSTRs) SysReAllocString() |
Misc Allocations |
miscellaneous allocation miscellaneous deallocation miscellaneous reallocation |
NetApiXXX |
NetApiBufferAllocate() or NetApiXXX() function allocating memory NetApiBufferFree deallocation NetApiBufferReallocate reallocation |
CryptoAPI |
CryptoAPI allocation CryptoAPI deallocation CryptoAPI reallocation |
COM |
COM object created COM QueryInterface() COM AddRef() COM Release() |
VirtualAlloc |
VirtualAlloc() VirtualFree() |
TRACE and
|
trace message, or OutputDebugString() message trace from an exception trace from an ASSERT |
Errors |
bad allocation bad deallocation bad reallocation double free(), or double delete mismatch between delete and free(), eg used delete when should have used free(), or vice versa mismatch deleting array, eg used delete [] when should have used delete, vice versa memory underrun memory overrun free memory write free memory read uninitialized memory memory error |
User Allocationsfrom API |
user allocation (mvUserCustomAlloc()) user deallocation (mvUserCustomFree()) user reallocation (mvUserCustomReAlloc()) user increase reference count (mvUserCustomRefCountIncrement()) user decrease reference count (mvUserCustomRefCountDecrement()) |
Coverage |
The following symbols are used by the coverage user interface to describe the types of allocations malloc() calloc() realloc() _expand() free() operator new operator delete handle creation handle destruction |
Other |
watermark placed by a user, or by mvSetWatermark() API function memory leak used by filter managers to show the filtering of an allocation of some |