Thread Validator - Overview
Thread Validator is a thread analysis software tool for use by software developers and software quality assurance testers. Thread deadlocks cause your application to hang and high thread contention for critical sections can cause your application to perform poorly. Thread Validator allows you to monitor these situations and more.
Use Thread Validator to
- Identify deadlocks in your application.
- Identify potential deadlocks in your application.
- Identify busy contended critical sections in your application.
- View thread locking behaviour in real time.
- Improve your software quality by modifying your threading behaviour.
- View all open handles that your application can wait on.
Easy to use
To use Thread Validator all you need is debugging information for your application and Thread Validator can get to work. You do not need to modify your software, recompile or relink your software to use Thread Validator.
- Launch your application with Thread Validator.
Thread Validator will launch and attach to your application in seconds. - Run your application as normal.
- Close your application.
- Examine the profiling statistics that Thread Validator generates as your application runs.
Easy to read data displays show you the critical section for each thread as your application executes. You do not need to wait until your application has finished to view statistics for any function, file or DLL. The displays can be filtered to show you only the information that you want to work with.
Detailed, colour coded source code shows at-a-glance which which critical sections are locked and and which critical sections have high contention rates.
Configurable
Thread Validator can be configured to collect all data or just the data you need. Powerful filters for collecting data and for displaying collected data give you maximum flexibility and control over how much CPU time is spent and how much memory is used collecting data allowing you to choose how much effort is put into a given task.
Thread Validator provides an API for using Thread Validator with services for the case when Thread Validator cannot inject into a service because of Windows NT security privileges preventing the injection (typically for services running at Administrator or system level).
Powerful
The default options of Thread Validator provide profiling data for all DLLs and files in your application that have debugging information. If you wish to only create profiling reports for selected DLLs, or exclude certain file types or even specific classes and methods, Thread Validator has filtering capabilities to allow such customisation.
Thread Validator multiple displays to provide you with different perspectives onto the data you have collected.
- Locks. Real time view of all critical sections in the application.
- Per Thread Locks. Real time view of all critical sections in the application, organised by thread.
- Current Locks. Real time view of all locked critical sections in the application..
- Active Objects. List of all allocated Win32 synchronization objects, including allocation callstack.
- Analysis. Perform queries on the data collected.
- Threads. Graphical thread activity timeline showing status per thread and lock status per event in each thread.
- Objects. All Win32 synchronization objects, including kernel flags and kernel names.
- Diagnostic. Diagnostic information about the application.
Compatible
Thread Validator works with compilers from Microsoft, Intel, Borland, Metrowerks, Salford Software, providing support for C++, C, Visual Basic, Delphi and Fortran.
All 32 bit Windows operating systems from Windows Vista to Windows NT 4.0 are supported. Some Thread Validator functionality does not work correctly in the Wow64 environment when run on 64 bit operating systems such as Windows XP 64 bit.
For more details, please consult the compatibility feature list

