A method to localize faults in concurrent C programs

Research output: Contribution to journalArticle

Abstract

We describe a new approach to localize faults in concurrent programs, which is based on bounded model checking and sequentialization techniques. The main novelty is the idea of reproducing a faulty behavior, in a sequential version of a concurrent program. In order to pinpoint faulty lines, we analyze counterexamples generated by a model checker, to the new instrumented sequential program, and search for a diagnostic value, which corresponds to actual lines in a program. This approach is useful to improve debugging processes for concurrent programs, since it tells which line should be corrected and what values lead to a successful execution. We implemented this approach as a code-to-code transformation from concurrent into non-deterministic sequential programs, which are used as inputs to existing verification tools. Experimental results show that our approach is effective and capable of identifying faults in our benchmark set, which was extracted from the SV-COMP 2016 suite.

Bibliographical metadata

Original languageEnglish
Pages (from-to)336-352
JournalThe Journal of Systems and Software
Volume132
Early online date15 Mar 2017
DOIs
Publication statusPublished - 1 Oct 2017