Interactive abstract interpretation: reanalyzing multithreaded C programs for cheap
Julian Erhard,Simmo Saan,Sarah Tilscher,Michael Schwarz,Karoliine Holter,Vesal Vojdani,Helmut Seidl
DOI: https://doi.org/10.1007/s10009-024-00768-9
2024-09-25
International Journal on Software Tools for Technology Transfer
Abstract:To put sound program analysis at the fingertips of the software developer, we propose a framework for interactive abstract interpretation of multithreaded C code. interpretation provides sound analysis results, but can be quite costly in general. To achieve quick response times, we incrementalize the analysis infrastructure, including postprocessing, without necessitating any modifications to the analysis specifications themselves. We rely on the local generic fixpoint engine TD – which we enhance with reluctant destabilization to minimize reanalysis effort. Dedicated further improvements support precise incremental analysis of program properties that include concurrency deficiencies such as data-races. The framework has been implemented in the static analyzer Goblint , and combined with the MagpieBridge framework to relay findings to IDEs. We evaluate our implementation w.r.t. the yard sticks of response time and consistency. We also provide examples of program development highlighting the usability of our approach.
computer science, software engineering