During execution of a program, the situation where the atomicity of a pair of instructions that are to be executed atomically is violated is identified, and a bug is detected as occurring in the program at the pair of instructions. The pairs of instructions that are to be executed atomically can be identified in different manners, such as by executing a program multiple times and using the results of those executions to automatically identify the pairs of instructions.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
This invention was made with Government support under Contract Number CCR-0325603 and Contract Number CNS-0347854, both awarded by the National Science Foundation (NSF), and Contract Number DE-FG02-05ER25688 awarded by the Department of Energy (DOE). The Government has certain rights in the invention.