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.
After the introductory page, the wizard presents options for configuring the how the launch, inject and wait dialogs present information to you.
•Wizard mode guides you through the tasks in a linear fashion
•Dialog mode 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.
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.
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.
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.
These lookup settings can be changed at any time on the Symbol Lookup page of the Settings Dialog.
The next page of the wizard allows you to specify which synchronization functions will be monitored.
Two check boxes control which groups of hooks are inserted into your application.
•Synchronization functions 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 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 as various threads sleep from time to time.
|
•Collect NULL and Invalid Handles |
information about failed handle creation |
•Select/Deselect All switches all the above functions allocating waitable handles - i.e. not Sleep and invalid handles
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.
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.
You can test the login details to ensure they are valid:
•Test login details click to check your entered details are valid (requires an internet connection)
Valid details will be confirmed:
Invalid details may mean you entered credentials for another application in the Validator suite, or they could have been entered incorrectly.
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.
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 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.
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.
•Visual Studio... opens the example projects solution with the version of Visual Studio selected
•Download... 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... opens the folder that contains all example projects
The final page of the wizard presents a short video overview of Thread Validator.
The video has audio
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 closes the First Run Configuration dialog leaving the application ready to use