In this talk, I will describe two MSR tools Cuzz and DataCollider for finding concurrency errors. Cuzz uses a randomized algorithm to insert delays in a concurrent program to force race conditions with probabilistic guarantees. Cuzz is easy to use and is integrated with Microsoft’s Application Verifier. DataCollider uses hardware facilities in interesting ways to find data races with little runtime overhead. While other data-race detection techniques incur a 1000% runtime overhead or more, DataCollider incurs about 0 to 20% overhead.
Madan Musuvathi is a Senior Researcher in the Research in Software Engineering group at Microsoft Research. His research focus is on scalable analysis of concurrent systems. More broadly, his interests include systems, program analysis, model checking, verification, and theorem proving. He also spends a lot of time at Microsoft building analysis tools to improve the productivity of software developers and testers.