Please enable JavaScript to view this site.

Memory Validator Help

 

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:

 

allocation-type-symbol-tooltips

 

Common icon shapes

 

There are a few recurring shapes you will find in the icons:

 

icon-shape-alloc  allocation

icon-shape-free  deallocation

icon-shape-realloc  reallocation

 

 

List of icons used in the main displays

 

The full suite of icons are shown below in groups, and with a very brief explanation.

 

General

icon16  option enabled

icon17  option disabled

icon73  line corresponding to allocation/reallocation/deallocation

icon80  source code

CRT Heaps

icon62 malloc(), calloc(), new

icon61 free(), delete

icon60 realloc()

Win32 Heaps

icon122 HeapAlloc()

icon120 HeapFree()

icon121 HeapRealloc()

Handles

icon56  handle creation

icon55  handle destruction

GlobalAlloc

icon101 GlobalAlloc()

icon98 GlobalFree()

icon99 GlobalRealloc()

LocalAlloc

icon97  LocalAlloc()

icon102  LocalFree()

icon103  LocalRealloc()

CoTaskMemAlloc

icon65  CoTaskMemAlloc()

icon64  CoTaskMemFree()

icon63  CoTaskMemRealloc()

IMallocSpy

icon50  IMallocSpy allocation

icon49  IMallocSpy deallocation

icon48  IMallocSpy reallocation

SysAllocString (BSTR)

icon96  SysAllocString()

icon95  SysFreeString() (and ::VariantClear() used to free BSTRs)

icon94  SysReAllocString()

Misc Allocations

icon112  miscellaneous allocation

icon111  miscellaneous deallocation

icon110  miscellaneous reallocation

NetApiXXX

icon115  NetApiBufferAllocate() or NetApiXXX() function allocating memory

icon114  NetApiBufferFree deallocation

icon113  NetApiBufferReallocate reallocation

CryptoAPI

crypto1  CryptoAPI allocation

crypto2  CryptoAPI deallocation

crypto3  CryptoAPI reallocation

COM

icon68  COM object created

icon67  COM QueryInterface()

icon69  COM AddRef()

icon66  COM Release()

VirtualAlloc

icon25  VirtualAlloc()

icon22  VirtualFree()

TRACE and
OutputDebugString

icon33  trace message, or OutputDebugString() message

icon34  trace from an exception

icon35  trace from an ASSERT

Errors

icon72  bad allocation

icon71  bad deallocation

icon70  bad reallocation

icon59  double free(), or double delete

icon40  mismatch between delete and free(), eg used delete when should have used free(), or vice versa

icon41  mismatch deleting array, eg used delete [] when should have used delete, vice versa

icon42  memory underrun

icon43  memory overrun

icon57  free memory write

icon58  free memory read

icon32  uninitialized memory

icon44  memory error

User Allocations

from API

icon30  user allocation (mvUserCustomAlloc())

icon29  user deallocation (mvUserCustomFree())

icon28  user reallocation (mvUserCustomReAlloc())

icon31  user increase reference count (mvUserCustomRefCountIncrement())

icon27  user decrease reference count (mvUserCustomRefCountDecrement())

Coverage

The following symbols are used by the coverage user interface to describe the types of allocations

icon78  malloc()

icon87  calloc()

icon74  realloc()

icon93  _expand()

icon82  free()

icon77  operator new

icon90  operator delete

icon56  handle creation

icon55  handle destruction

Other

icon18  watermark placed by a user, or by mvSetWatermark() API function

icon79  memory leak used by filter managers to show the filtering of an allocation of some