The following steps show the process by which you can troubleshoot your multithreaded program with Thread Analyzer.
Instrument the program, if doing data race detection.
Create a data-race-detection or deadlock-detection experiment.
Examine the experiment result and establish whether the multithreaded programming issues revealed by Thread Analyzer are legitimate bugs or benign phenomena.
Fix the legitimate bugs and create additional experiments (step 2 above) with varied factors such as different input data, a different number of threads, varied loop schedules or even different hardware. This repetition helps locate non-deterministic problems.
Steps 1 through 3 above are described in the following sections.