Trace-driven verification of multithreaded programs

  • Authors:
  • Zijiang Yang;Karem Sakallah

  • Affiliations:
  • Western Michigan University, Kalamazoo, MI;University of Michigan, Ann Arbor, MI

  • Venue:
  • ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new method that combines the efficiency of testing with the reasoning power of satisfiability modulo theory (SMT) solvers for the verification of multithreaded programs under a user specified test vector. Our method performs dynamic executions to obtain both under- and over-approximations of the program, represented as quantifier-free first order logic formulas. The formulas are then analyzed by an SMT solver which implicitly considers all possible thread interleavings. The symbolic analysis may return the following results: (1) it reports a real bug, (2) it proves that the program has no bug under the given input, or (3) it remains inconclusive because the analysis is based on abstractions. In the last case, we present a refinement procedure that uses symbolic analysis to guide further executions.