Please enable JavaScript to view this site.

Memory Validator Help

The Pages tab displays all known memory allocations according to the virtual memory page in which they were allocated.


If the Pages tab isn't visible, use the Data Views menu to set which views are shown.


interactiveClick a part of the image below to jump straight to the help for that area.





This tab provides a snapshot of how the memory in use is distributed across virtual memory pages (4K in size).


By looking at the data, especially the graphical view, you can see the memory fragmentation, and find out which parts of the application are using each memory page.



The Pages Data


The data lists all virtual memory pages used by the target application, omitting those pages that have no allocations within or overlapping them.


The first line of data gives an overall summary, for example:




The remaining expandable items are shown in page order:




Each page item shows:


the page address

the number of allocated objects completely or partially in the page

the percentage fragmentation within the page

number of bytes used

unused bytes


Expanding an item shows details about allocated objects and free space in each page.


Selecting one page in the list may highlight others either side in gray as below. This indicates that those pages are linked by memory allocations spanning between or across those pages.




Display options allow you to focus either on the objects within each page or on the order of the objects and free space.


note Note that unlike many of the other data tabs, the pages data is not automatically updated at regular intervals. You'll have to click Refresh to get an update.



Page tab options


At the far left of the window are some options for updating and viewing the data.





Display settings


The display option at the top changes how the data is displayed when you expand each page data item:


Display by Usage instructionStep orders the information within each page by the objects using it, and then by the chunks of free space, grouped by size


Display by Address instructionStep shows each page's information by the start address of each object or chunks of free space within that page


Unused space threshold instructionStep when displaying by address, free space blocks greater than this threshold are highlighted as below


Each allocated object in the expanded view shows data type, size, address, and source file with line number if known.


Below are examples of a page's details expanded for each display method:


By usage:




By address, highlighting free space blocks over the set threshold:





Updating the display


Clear instructionStep removes all data from the display


This can be useful if you have limited RAM and inspecting large applications as it frees up resources used by Memory Validator so that you can use another tab view.


Refresh instructionStep updates the display - as does the refresh button on the Tools menu and toolbar



Graphical view



Graphical instructionStep shows the following dialog visualizing the page data in memory




This view uses a single coloured pixel for each page of memory, wrapping from left to right and top to bottom:


Red instructionStep very fragmented - 0 to 33% usage

Blue instructionStep fragmented - 33 to 66% usage

Green instructionStep least fragmented - 66 to 100% usage


Hovering the mouse over any coloured area in the graph shows the address, number of objects, and the usage as a percentage and number of bytes just below the graph.


The graph has a popup menu giving access to allocations, reallocations and deallocations as follows:


Page information... instructionStep allocations in the selected page (pixel)

Region information... instructionStep  allocations in the same contiguous block of colour (i.e. with the same fragmentation level)


An example of the page information dialog is below. The region information shows the first and last page address accordingly.




The allocations in the dialog can be expanded, to show the local source code, and double clicking launches your preferred editor with the source file.



Local filters and settings


Filter... instructionStep shows the local filters dialog for the Pages tab


 The filter button also indicates the number of local filters, although not all of these may be enabled




Searching for memory in pages


Search... instructionStep shows the Find Memory dialog for the Pages tab

This is the same as the search button in the toolbar, and the Search option in the Query menu.





At the bottom of the options on the left are two totals:




Total allocated instructionStep gives the total memory consumption for all allocated objects


Max allocated instructionStep shows the total allocation capacity for all the virtual memory pages currently in use


This would simply be the number of pages multiplied by 4K, so in the example above 57 pages * 4096 = a capacity of 233,472 bytes



Pages view popup menuright_mouse_button


The following popup menu is available over the data area





right_mouse_buttonMenu option: Help on selected item


Help on selected item instructionStep the sub-menu shows a simple one line description of the type of data that has been selected:



right_mouse_buttonMenu option: editing source code


Edit Source Code... instructionStep opens the default or preferred editor to edit the source code



right_mouse_buttonMenu option: relations


When used over an allocation within a page, the relations sub menu lets you show some related allocations in the Analysis tab to inspect in more detail.




Show Allocation Location instructionStep adds only the allocation for the selected item in the page to the Analysis tab


Show previous and next... instructionStep adds the available allocations for the allocations in the specified event sequence range, relative to the selected item in the page

 For example, choosing the previous and next 10 allocations, shows allocations in the range id-10 to id+10, but only those that are still accessible.  


Show Allocations/Deallocations for type instructionStep adds all the allocations/deallocations (or both) to the Analysis tab that match the object type of the selected item in the page

 For example, if the allocation in the page is of type BYTE[], this will show every allocation that is of the same type, including the one you selected.



right_mouse_buttonMenu options: collapse / expand page data


Collapse or Expand Page Data instructionStep simply shows and hides the information for the selected page, the same as using the expand-symbol or collapse-symbolbuttons


Collapse or Expand All instructionStep completely collapses or expands all the pages information in the display