Litcius/Paper detail

When threads meet events: efficient and precise static race detection with origins

Bozhen Liu, Pei-Ming Liu, Yanze Li, Chia-Che Tsai, Dilma Da Silva, Jeff Huang

202116 citationsDOIOpen Access PDF

Abstract

Data races are among the worst bugs in software in that they exhibit non-deterministic symptoms and are notoriously difficult to detect. The problem is exacerbated by interactions between threads and events in real-world applications. We present a novel static analysis technique, O2, to detect data races in large complex multithreaded and event-driven software. O2 is powered by “origins”, an abstraction that unifies threads and events by treating them as entry points of code paths attributed with data pointers. Origins in most cases are inferred automatically, but can also be specified by developers. More importantly, origins provide an efficient way to precisely reason about shared memory and pointer aliases.

Topics & Concepts

Computer sciencePointer (user interface)Programming languageAbstractionParallel computingSoftwareMemory safetyStatic analysisEvent (particle physics)Theoretical computer scienceArtificial intelligencePhysicsQuantum mechanicsEpistemologyPhilosophyAdvanced Malware Detection TechniquesSoftware Testing and Debugging TechniquesSoftware Engineering Research