Using the Find Memory dialog below, you can search the data in some of the tab views for different types of memory allocations.
Searches can be:
•based on allocation location such as in a function, file or module
•based on the allocated object such as size, type or address
•based on other identifiers like tag id, sequence id, or allocation type
To show the Find Memory dialog, choose the menu option below:
Or use the search icon on the Query Toolbar.
The Find Memory dialog has many search options, each of which can be switched on and off.
There is a different instance of the dialog for each of the following tabs:
•The Memory tab
•The Hotspots tab
•The Analysis tab
•The Pages tab
Note that the Find Memory dialog can remain open while you inspect the results.
Each of the desired search options needs to be enabled and criteria specified:
To find objects... |
enable the option and choose... |
•of type |
a data type from the drop down list |
•in function |
a function from the list |
•allocated in file |
a file from the list |
•allocated in directory |
a directory from the list |
•in module |
an .exe, DLL or other module |
•in heap |
a heap ID |
•with allocation id |
the allocation request id |
•of allocation type |
opne of alloc, realloc or free from the dropdown list |
•with tag tracker |
a tag tracker id |
•by thread id |
a thread id
|
Objects between... |
|
•addresses |
type in the values or choose the current minimum or maximum from the drop down list |
•sizes |
|
•pages |
|
•sequence ids |
|
Free text search |
|
•event description |
a string that is a subset of an event description. |
For options where there is a set choice of values, the lists show all the options that Memory Validator knows about at the time the dialog is shown.
Where a range is specified, you can enter the same value for the beginning and end of the range.
If you want to search by object type, note that Memory Validator only fetches type information for each memory location when it is requested. This improves performance, but can mean the drop down list doesn't have all the datatypes in yet. If you don't see a datatype you want, type it in instead, and the list will be updated when possible.
To start over and create a new set of search criteria, there's a handy reset option:
•Reset clears all the fields and enables all options as seen in the picture above
By default, callstacks are not searched, but if you want to search all stack frames you can.
•Search all of each callstack if selected all frames of each callstack are searched as well as the top frame
There are two ways of searching:
•Exclusive search results satisfy all the enabled search criteria
•Inclusive search results satisfy at least one of the enabled search criteria
As a general rule, exclusive searches return a tightly focused set of results, while inclusive searches return a broader set of results.
For those who prefer logic notation, exclusive searches use AND logic, while inclusive use OR logic.
Once search criteria are enabled, and search mode selected, results can be found
•Find... matching results in the corresponding tab are highlighted
The colour of highlighted objects is set on the colours tab of the Global Settings dialog.
The first time a search with a new search criteria is performed the first item in the search results is navigated to and selected.
Subsequent searches without changing the search criteria will navigate to the next search result, or if shift is held, the previous search result.
is the equivalent of clicking the Find... button.
•Clear all previous search results in the corresponding tab are cleared
In the picture above, the dialog shows a search setup to find:
•objects of size 4
•objects of type CtestParsing_c.
The results of that search are shown in the Memory tab below, first as an exclusive search and then an inclusive one.
Example results: Exclusive results, showing only the 4 byte CtestParsing_c object allocation:
Example results: Inclusive results, now showing the 4 byte CString objects also selected.