Generating data race witnesses by an SMT-based analysis

  • Authors:
  • Mahmoud Said;Chao Wang;Zijiang Yang;Karem Sakallah

  • Affiliations:
  • Department of Computer Science, Western Michigan Univerisity, Kalamazoo, MI;NEC Laboratories America, Princeton, NJ;Department of Computer Science, Western Michigan Univerisity, Kalamazoo, MI;Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor, Michigan

  • Venue:
  • NFM'11 Proceedings of the Third international conference on NASA Formal methods
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Data race is one of the most dangerous errors in multithreaded programming, and despite intensive studies, it remains a notorious cause of failures in concurrent systems. Detecting data races is already a hard problem, and yet it is even harder for a programmer to decide whether or how a reported data race can appear in the actual program execution. In this paper we propose an algorithm for generating debugging aid information called witnesses, which are concrete thread schedules that can deterministically trigger the data races. More specifically, given a concrete execution trace, e.g. non-erroneous one which may have triggered a warning in Eraser-style data race detectors, we use a symbolic analysis based on SMT solvers to search for a data race witness among alternative interleavings of events of that trace. Our symbolic analysis precisely encodes the sequential consistency semantics using a scalable predictive model to ensure that the reported witness is always feasible.