Detecting Blocking Errors in Go Programs using Localized Abstract Interpretation

Oskar Haarklou Veileborg, Georgian-Vlad Saioc, Anders Møller

Publikation: Bidrag til bog/antologi/rapport/proceedingKonferencebidrag i proceedingsForskningpeer review

Abstract

Channel-based concurrency is a widely used alternative to shared-memory concurrency but is difficult to use correctly. Common programming errors may result in blocked threads that wait indefinitely. Recent work exposes this as a considerable problem in Go programs and shows that many such errors can be detected automatically using SMT encoding and dynamic analysis techniques. In this paper, we present an alternative approach to detect such errors based on abstract interpretation. To curb the large state spaces of real-world multi-threaded programs, our static program analysis leverages standard pre-analyses to divide the given program into individually analyzable fragments. Experimental results on 6 large real-world Go programs show that the abstract interpretation achieves good scalability and finds 104 blocking errors that are missed by the state-of-the-art tool GCatch.

OriginalsprogDansk
TiteliWOAR 2022 - 7th International Workshop on Sensor-Based Activity Recognition and Artificial Intelligence, Proceedings
UdgivelsesstedNew York
ForlagAssociation for Computing Machinery
Publikationsdatojan. 2023
Sider1-12
Artikelnummer32
ISBN (Trykt)978-1-4503-9475-8
ISBN (Elektronisk)9781450396240
DOI
StatusUdgivet - jan. 2023
Begivenhed37th IEEE/ACM International Conference on Automated Software Engineering -
Varighed: 10 okt. 2022 → …

Konference

Konference37th IEEE/ACM International Conference on Automated Software Engineering
Periode10/10/2022 → …

Citationsformater