Inter-Procedural Static C++ Concurrency Checker

Jordi, Frank and Patzen, Hansruedi and Schläpfer, Fabian (2017) Inter-Procedural Static C++ Concurrency Checker. Bachelor thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of FS 2017-BA-EP-Jordi-Schläpfer-Patzen-C++ Concurrency Checker Productizing.pdf]
FS 2017-BA-EP-Jordi-Schläpfer-Patzen-C++ Concurrency Checker Productizing.pdf - Supplemental Material

Download (4MB) | Preview



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: HSR Deposit User
Thesis advisor
Meili, Mario
Date Deposited: 18 Oct 2017 06:59
Last Modified: 18 Oct 2017 06:59

Actions (login required)

View Item
View Item