hand touching liquid metal

C++ Deadlock detector - Thread Validator 5.48

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.
  • Identify slow critical sections in your application.
  • Identify re-entered 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.
  • Command line API to support automated use (Jenkins, etc).

3 Minute Video

Painless deadlock detection with Thread Validator.


Thread Validator multiple displays to provide you with different perspectives onto the data you have collected.

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 displays shows at-a-glance which which critical sections are locked and and which critical sections have high contention rates.

The lock order can also be inspected. Click on any item to see which other threads are also hold this lock or waiting on this lock.


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).


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 works with compilers from:

VendorLanguageCompiler / IDE
MicrosoftC++, C, Visual Basic 6Visual Studio
IntelC++, C, FortranIntel Performance Compiler, Intel Fortran
EmbarcaderoC++, C, DelphiC++ Builder, Delphi, Rad Studio
MinGWC++, Cg++ / gcc
LLVMC++, CClang
QtC++, CQtCreator
MetrowerksC++, CCode Warrior
Salford SoftwareFortran 95Fortran 95

We support many versions of Visual Studio: Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010, 2008, 2005, 2003, 2002 and Visual Studio 6 are supported.

All 64 bit (x64) Windows operating systems are supported.

All 32 bit Windows operating systems from Windows 11 to Windows XP are supported.

For more details, please consult the compatibility feature list.

.Net and .Net Core

Thread Validator can’t instrument the .Net monitors in your application, but if you’re writing mixed mode applications Thread Validator can instrument the native parts of your mixed mode application.

Command line

Thread Validator also allows you to automate thread analysis by launching Thread Validator from the command line.

A full range of command line options allow you to perform unattended thread analysis with Thread Validator, complete with HTML export and XML export, to facilitate regression testing as part of your overnight builds.

Example 1 Launch an application, when the application completes save the results and refresh some displays.

threadValidator.exe -program "c:\myProgram.exe"
                    -saveSession "c:\myResults\session1.tvm"
                    -displayUI -refreshSummary -refreshLocks -refreshActiveObjects

Example 2 Launch an application, when the application completes save the results and export the results as HTML.

threadValidator.exe -program "c:\myProgram.exe"
                    -saveSession "c:\myResults\session1.tvm"
                    -exportAsHTML "c:\myResults\session1.html"

Software Updates

We update our software tools on a regular basis – on average about 26 updates per year. Updates are optional, you only need to download the most recent update to be up-to-date.

You can set up automatic software updates using the credentials we supply to you when you purchase. Automatic software updates can be setup to check daily, weekly, monthly or never.

Change History

If you’re curious about the Thread Validator change history you can view it here.

Fully functional, free for 30 days