A True Positives Theorem for a Static Race Detector - Extended Version

11/08/2018
by   Nikos Gorogiannis, et al.
0

RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/08/2022

Learning to Reduce False Positives in Analytic Bug Detectors

Due to increasingly complex software design and rapid iterative developm...
research
06/01/2019

Neural Bug Finding: A Study of Opportunities and Challenges

Static analysis is one of the most widely adopted techniques to find sof...
research
05/21/2022

How to Find Actionable Static Analysis Warnings

Automatically generated static code warnings suffer from a large number ...
research
08/05/2021

HIPPODROME: Data Race Repair using Static Analysis Summaries

Implementing bug-free concurrent programs is a challenging task in moder...
research
09/11/2018

Neural-Augmented Static Analysis of Android Communication

We address the problem of discovering communication links between applic...
research
07/19/2023

Cross-thread critical sections and efficient dynamic race prediction methods

The lock set method and the partial order method are two main approaches...
research
02/14/2020

Did JHotDraw respect the Law of Good Style? – An exploratory deep dive into the nature of false positives of bad code smells

Developers need to make a constant effort to improve the quality of thei...

Please sign up or login with your details

Forgot password? Click here to reset