Towards LTL Model Checking of Unmodified Thread-Based C & C++ Programs
| Authors | |
|---|---|
| Year of publication | 2012 |
| Type | Article in Proceedings |
| Conference | NASA Formal Methods |
| MU Faculty or unit | |
| Citation | |
| Doi | https://doi.org/10.1007/978-3-642-28891-3_25 |
| Field | Informatics |
| Keywords | Model checking; real code; DiVinE |
| Description | In this paper we present a new approach to verification of multi-threaded C/C++ programs. Our solution effectively chains the parallel and distributed-memory model checker DiVinE with CLang and the LLVM bitcode interpreter. This combination offers full LTL, distributed-memory model checking of virtually unmodified C/C++ source code and is supported by a newly introduced path-reduction technique. We demonstrate the efficiency of the reduction and also the capacity to produce human-readable counter-examples in two small case studies: a C implementation of the Peterson's mutual exclusion protocol and a C++ implementation of a shared-memory, lock-free FIFO data structure designed for fast inter-thread communication. |
| Related projects: |