AbstractData races in multithread programs are representative software defects of accesses to shared memory locations caused by the interleaving of the concurrent threads. It is difficult to figure out whether a program runs into data races, because there are many possible executions of the program and a lot of the data races are hard to reproduce. Hence data races should be located with a range of automatic detectors employing sophisticated techniques for monitoring and analyzing the program executions. Unfortunately, we cannot merely depend only on the located results of a dynamic detector, since each dynamic detector exhibits different limitations even they provide significant advantages through each of their techniques. This paper prese...