Aspect-Oriented Race Detection in Java

8 years 10 months ago
Aspect-Oriented Race Detection in Java
—In the past, researchers have developed specialized programs to aid programmers in detecting concurrent programming errors such as deadlocks, livelocks, starvation, and data races. In this work, we propose a language extension to the aspect-oriented programming language AspectJ, in the form of three new pointcuts, lock(), unlock(), and maybeShared(). These pointcuts allow programmers to monitor program events where locks are granted or handed back, and where values are accessed that may be shared among multiple Java threads. We decide thread locality using a static thread-local-objects analysis developed by others. Using the three new primitive pointcuts, researchers can directly implement efficient monitoring algorithms to detect concurrent-programming errors online. As an example, we describe a new algorithm which we call RACER, an adaption of the well-known ERASER algorithm to the memory model of Java. We implemented the new pointcuts as an extension to the AspectBench Compiler, ...
Eric Bodden, Klaus Havelund
Added 31 Jan 2011
Updated 31 Jan 2011
Type Journal
Year 2010
Where TSE
Authors Eric Bodden, Klaus Havelund
Comments (0)