Abstract
Improper use of Inter-Process Communication (IPC) within concurrent systems often creates data races which can lead to bugs that are challenging to discover. Techniques that use Satisfiability Modulo Theories (SMT) problems to symbolically model possible executions of concurrent software have recently been proposed for use in the formal verification of software. In this work we describe a new technique for modeling executions of concurrent software that use a message passing API called MCAPI. Our technique uses an execution trace to create an SMT problem that symbolically models all possible concurrent executions and follows the same sequence of conditional branch outcomes as the provided execution trace. We check if there exists a satisfying assignment to the SMT problem with respect to specific safety properties. If such an assignment exists, it provides the conditions that lead to the violation of the property. We show how our method models behaviors of MCAPI applications that are ignored in previously published techniques.
- B. Dutertre and L. de Moura. A Fast Linear-Arithmetic Solver for DPLL(T). In CAV, volume 4144 of LNCS, pages 81--94, 2006. Google Scholar
Digital Library
- M. Elwakil and Z. Yang. Debugging support tool for mcapi applications. In PADTAD, 2010. Google Scholar
Digital Library
- C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, pages 110--121. ACM, 2005. Google Scholar
Digital Library
- http://www.multicore association.org/workgroup/mcapi.php.Google Scholar
- S. Sharma, G. Gopalakrishanan, E. Mercer, and J. Holt. Mcc - a runtime verification tool for mcapi user applications. In FMCAD, 2009.Google Scholar
Cross Ref
- C. Wang, S. Chaudhuri, A. Gupta, and Y. Yang. Symbolic pruning of concurrent program executions. In ESEC/FSE, pages 23--32, New York, NY, USA, 2009. ACM. Google Scholar
Digital Library
- Y. Yang, X. Chen, and G. Gopalakrishnan. Inspect: A runtime model checker for multithreaded c programs. Technical report, 2008.Google Scholar
Index Terms
Symbolically modeling concurrent MCAPI executions
Recommendations
Symbolically modeling concurrent MCAPI executions
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingImproper use of Inter-Process Communication (IPC) within concurrent systems often creates data races which can lead to bugs that are challenging to discover. Techniques that use Satisfiability Modulo Theories (SMT) problems to symbolically model ...
CRI: symbolic debugger for MCAPI applications
ATVA'10: Proceedings of the 8th international conference on Automated technology for verification and analysisWe present a trace-driven SMT-based symbolic debugging tool for MCAPI (Multicore Association Communication API) applications. MCAPI is a newly proposed standard that provides an API for connectionless and connection-oriented communication in multicore ...
Debugging support tool for MCAPI applications
PADTAD '10: Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and DebuggingThe recently proposed MCAPI (Multicore Association Communication API) specification provides multicore programs developers with a standard API for inter-core messages-based communication and stream-based communication. Debugging MCAPI programs that use ...







Comments