1. A computer readable medium having stored thereon computer executable instructions causing a computer to execute a process comprising: locating one or more threads during execution of a multi-threaded program; identifying one or more thread-specific cold paths, one or more thread-specific lockset paths and one or more hot paths from the one or more located threads; sampling: (i) the one or more thread-specific cold paths at a first rate; (ii) the one or more lockset paths at a second rate, and (iii) the one or more thread specific hot paths at a third rate that is less than both the first and second rates; and generating a data-race log that includes information determined during the sampling of the one or more thread-specific cold paths, the one or more thread-specific lockset paths, and the one or more thread-specific hot paths.