Jordi, Frank and Patzen, Hansruedi and Schläpfer, Fabian (2017) Inter-Procedural Static C++ Concurrency Checker. Bachelor thesis, HSR Hochschule für Technik Rapperswil.
FS 2017-BA-EP-Jordi-Schläpfer-Patzen-C++ Concurrency Checker Productizing.pdf - Supplemental Material
Download (4MB) | Preview
Abstract
Abstract
========
The rise of concurrent and parallel programming has lead to an increased demand for native programming language support. C++ added a wide variety of these constructs to the standard library starting with C++11. When using concurrency one needs to be careful not to introduce data races. Data races are dangerous because they are undefined behavior and, due to their non deterministic nature,
hard to find and solve. There are different approaches to detect them. One approach is to do a dynamic analysis which comes with a run-time overhead. Another approach is to do a static analysis by doing a control flow analysis using the raw source code. This bachelor thesis takes the ConditionR tool, a static data race analysis prototype developed in a master thesis, and develops it further to make it usable with real world projects. An open source project with at least one known data race was chosen to evaluate the capabilities at the beginning and the end of the thesis. To do so the three main parts of the prototype need to be developed further. The groundwork is done in a Clang Static Analysis checker which outputs the control flow graph needed for the data race detection. The analysis is written in Scala based on an algorithm patented by Prof. Dr. Luc Bläser. Finally the detected data races are reported to the Cevelop IDE plug-in. The plug-in visualizes the results, giving developers an overview of all found races and their relation with each other.
Item Type: | Thesis (Bachelor) |
---|---|
Subjects: | Topics > Internet Technologies and Applications > Visualization Area of Application > Development Tools Technologies > Programming Languages > C++ Technologies > Programming Languages > C Technologies > Frameworks and Libraries > Eclipse Technologies > Operating Systems > Unix, Linux |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Meili, Mario UNSPECIFIED |
Date Deposited: | 18 Oct 2017 06:59 |
Last Modified: | 18 Oct 2017 06:59 |
URI: | https://eprints.ost.ch/id/eprint/601 |