Please enable JavaScript to view this site.

Thread Validator Help

Navigation: The User Interface

First Run Configuration

Scroll Prev Top Next More

 

First run configuration

 

For new users of Thread Validator, a configuration wizard appears the first time you run the application.

 

The wizard collects a few details about environment, tools, update requirements (for non-evaluation users) and ends with a short video tutorial.

 

first-run-config-dialog

 

 

User interface mode

 

After the introductory page, the wizard presents options for configuring the how the launch, inject and wait dialogs present information to you.

 

 first-run-config-user-interface-mode

 

 

Wizard mode instructionStep guides you through the tasks in a linear fashion
 

Dialog mode instructionStep all options are contained in a single dialog
 
       Experienced users will find this mode quicker to use

 

These settings can be changed at any time via the User Interface Mode option on the Settings menu.

 

 

Symbol search path environment variables

 

After the introductory page, the wizard presents options for using environment variables for symbol search paths when finding PDB symbols.

 

You don't have to choose any of these options as Thread Validator will try to automatically determine symbol path information.

 

first-run-config-dialog-sym-search-path

 

These environment settings can be changed at any time via the Configure Symbol Handling Environment Variables on the Symbol Server page of the Settings Dialog.

 

 

Symbol lookup

 

The next page of the wizard allows you to specify which IDE, Compiler or Linker you're using.

 

This is important as it affects how symbol lookup is performed. Visual Studio has various quirks in its history of symbol handling and we have to work around that.

 

The default settings are shown below, although the Visual Studio version may vary.

 

first-run-config-dialog-sym-lookup

 

These lookup settings can be changed at any time on the Symbol Lookup page of the Settings Dialog.

 

 

Hook Insertion

 

The next page of the wizard allows you to specify which synchronization functions will be monitored.

 

 

first-run-config-dialog-hook-insertion

 

Two check boxes control which groups of hooks are inserted into your application.

 

Synchronization functions instructionStep inserts hooks for tracking synchronization objects into the target program

 

If enabled, the default behaviour is that critical section enter and leave events will be tracked. Additional functions can then be specified below.

 

Functions working with waitable handles instructionStep hooks (below) for tracking functions that create, manage and destroy waitable handles will be inserted into the target program

 

A few additional functions (Sleep, and critical section related functions) are also monitored.

 

Specify which groups of functions should have data collected from them using the individual check boxes. (See note about memory below).

 

Any collected data can be viewed on the Active Objects and Analysis tabs.

 

Groups of items

Functions that...

Critical Section

initialize, modify and destroy

Event

create, open and destroy

Mutex

create, open and destroy

Semaphore

create, open and destroy

Register Wait

register and unregister

Waitable Timer

create, open and destroy

Job Object

create, open and destroy

Process

create, open and destroy

Thread

create, open and destroy

File

create, open and destroy files (of any type)

Duplicate Handle

miscellaneous handle functions

Change Notification

create, open and destroy file change notifications

Timer Queue

create, open and destroy timer queues and timer queue timers

 

Other options:

 

Sleep

Sleep and SleepEx
 
For many applications, enabling Sleep will generate a lot of data,

as various threads sleep from time to time.

 

Collect NULL and Invalid Handles

information about failed handle creation
 
When collecting waitable handles, you may also want to collect information about failed handle creation using this option.

 

 

Select/Deselect All instructionStep switches all the above functions allocating waitable handles - i.e. not Sleep and invalid handles

 

note It's recommended that options in this section are only enabled if you need to monitor the data. If you subsequently find that memory consumption is very high, consider changing the settings here, or on the Historical Data tab.

 

These hook insertion settings can be changed at any time on the Hook Insertion page of the Settings Dialog.

 

 

Software update credentials

 

The software updates page of the wizard is only shown to non-evaluation users.

 

You can configure your software update credentials within the application and where updates are downloaded to.

 

first-run-config-dialog-update

 

You can test the login details to ensure they are valid:

 

Test login details instructionStep click to check your entered details are valid (requires an internet connection)

 

Valid details will be confirmed:

 

login-details

 

Invalid details may mean you entered credentials for another application in the Validator suite, or they could have been entered incorrectly.

 

login-details-invalid

 
You should have received the correct credentials when you purchased Thread Validator.

 

If you experience problems, check with your system administrator or contact Software Verify.

 

These update credentials can be changed at any time from the Software Updates menu.

 

 

Software update download location

 

It’s important to be able to specify where software updates are downloaded to because of potential security risks that may arise from allowing the TMP directory to be executable.

 

We use the TMP directory as a default, but if you're not comfortable with that you can specify your preferred download directory. This allows you to set permissions for TMP to deny execute privileges if you wish.

 

An invalid directory, e.g. one that does not exist, will show text in red and will not be accepted until a valid folder is entered.

 

Reset instructionStep reverts the download location to the user's TMP directory

 

The default location is c:\users\[username]\AppData\Local\Temp

 

The download location can be changed at any time from the Software Updates menu.

 

 

Build example projects

 

The next page of the wizard allows you to build the example projects that ship with Thread Validator.

 

The example projects demonstrate various application types containing bug you may wish to investigate with Thread Validator.

 

 settings-first-run-settings-wizard-build-example-projects

 

Visual Studio... instructionStep opens the example projects solution with the version of Visual Studio selected

 

Download... instructionStep downloads a prebuilt version of the example projects, unzips them and installs them in the examples folder in the Thread Validator installation directory

 

If you choose this option and you have not installed Thread Validator in the default location (assuming a 64 bit OS) the source file paths in the debug information will be incorrect - you will need to use the File Locations settings to inform Thread Validator of the correct location(s).

 

Open example projects folder... instructionStep opens the folder that contains all example projects

 

 

Video overview of application

 

The final page of the wizard presents a short video overview of Thread Validator.

 

note The video has audio

 

 

login-details-video

 

More help is available via the Tutorials tab and the Help menu.

 

The video is also available on the product website. Visit https://www.softwareverify.com/products.php and find the product link for Thread Validator.

 

Finish instructionStep closes the First Run Configuration dialog leaving the application ready to use