Please enable JavaScript to view this site.

Thread Validator Help

The Active Objects tab allows you to view and examine synchronization objects that are currently active.

 

interactiveRead on, or click a part of the image below to jump straight to the help for that area.

 

active-objects-tab

 

 

The Active Objects View

 

The view shows information about all active synchronization objects.

 

Each object is listed with its callstack to enable you to drill down to the source code for the call.

 

When Thread Validator identifies miscellaneous error conditions, data about the conditions and callstack is displayed in this window.

 

That data can be filtered and restricted by watermarks to fine tune the displayed data.

 

 

Examining a data item

 

Each item can be expanded with the expand-symbol button ( and then collapsed with the collapse-symbol) to show more detailed information:

 

thread id and the name, if assigned

timestamp

the callstack for the item

 

Each line of the callstack shows:

 

instruction address

module name

undecorated C++ function name

source file and line number (if available) for the function

 

active-objects-tab-data-item-col

 

 

Examining the callstack and code

 

One or more parts of the callstack can be expanded or collapsed using the expand-symbol or collapse-symbol to show the source code around the relevant line in the associated file.

 

If the source code can't be found, or the file location is invalid you'll be prompted for the file.

 

The line on which the allocation occurred is highlighted, e.g. green in this example:

 

 active-objects-tab-data-item

 

To edit the source code, double click on any part of the lines of source code displayed or use right_mouse_buttonEdit Source Code...

 

 

Source file not found automatically?

 

If the source file isn't found automatically, you'll be prompted to provide the location manually with the Find Source File dialog

 

find-source-file-dialog

 

 

You can scan, search or browse for the source location depending on how much of an idea you have of the location:

 

Browse... instructionStep uses an explorer to search manually

 

Search All Drives... instructionStep does a full scan of your computer, showing the Searching For Source Files dialog
 

You can stop the search at any time

 
searching-for-source-file-dialog

 

If a file is found, the filename is entered at the top of the Find Source File dialog.

 

If multiple results are found, pick the best one from the results dialog that appears:

 

multiple-results

 

 

Search Folder... instructionStep prompts for a folder, and scans that using the same Searching For Source Files dialog as above

 

If multiple results are found, pick the best one from the results dialog (above)

 

 

Rather than repeatedly searching manually for locations, it's recommended to modify the automatic source file search paths:

 

File Locations... instructionStep shows the File Locations Settings dialog so you can change the automatic search paths

 

Changing the search paths to include additional source locations means you'll get prompted less.

 

The file locations settings dialog is identical to the File Locations page of the global settings dialog.

 

file-locations-settings-dialog

 

 

If you don't want to be prompted with this dialog, then uncheck the first option below

 

Ask for location of file if file cannot be found in search paths instructionStep shows this dialog each time you try to open a source file where the location is unknown

 

Don't ask for location of file if line number is not valid instructionStep stops this dialog from showing when line numbers are invalid, e.g.  zero or negative

 

The default is not to ask in this case.

 

 

Watermarks

 

The amount of data in the main display can be reduced by watermarks.

 

Here you can choose two watermarks allowing only the data between them to be displayed.

 

First Watermark instructionStep Choose a watermark from the list instructionStep Last Watermark instructionStep Choose another watermark instructionStep Refresh instructionStep updates the data shown in the display

 

There are two permanent default watermarks, called First watermark (before anything else) and Last watermark (after anything else).

 

Attempting to choose a first watermark later than the last watermark, or vice-versa will result in the alternate watermark automatically updating.

 

 

Updating the display

 

Display... instructionStep show the Active Objects Display Settings dialog

 

 active-objects-display-settings-dialog

 

 Choose the types of data to display and whether the data should be grouped or displayed individually.

 

Refresh instructionStep refresh the list manually when you need to
 

Group by callstack instructionStep groups information by related callstack (default)

 

note The number of items in an ungrouped table can get very long when there are many items with the same callstack.

 

 

Active objects menu optionsright_mouse_button

 

The following popup menu is available over the data area to add bookmarks, watermarks and edit source code.

 

Menu actions apply to the function for the row at the menu-click location.

 

active-objects-menu

 

 

right_mouse_buttonMenu option: bookmarks and watermarks

 

Bookmarks allow you to find a data item easily at a later date, while watermarks are used above to show only those items between two points in time.

 

Add Bookmark... instructionStep adds a bookmark for the selected item

 

Add Watermark... instructionStep adds a watermark for the selected item

 

 

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 options: collapse / expand trace

 

Collapse or Expand Trace instructionStep simply shows and hides data item information, the same as using the expand-symbol or collapse-symbolbuttons

 

Collapse or Expand All instructionStep hides or shows all the available callstack information for every listed item