Patent ID: 7539979
Filing Date: 2009-05-26
Classification: G06F

Abstract:
1. A method for testing for concurrent bugs in a multi-threaded software, comprising: loading the software onto a computer, the software comprising a command to access a non-atomic variable, the non-atomic variable comprising a first memory word and a second memory word; replacing the non-atomic variable with a first atomic variable and a second atomic variable; storing the first memory word as the first atomic variable; storing the second memory word as the second atomic variable; replacing the command to access the non-atomic variable with a first instruction to access the first atomic variable and a second instruction to access the second atomic variable; inserting a thread-switching code between the first and second instructions, wherein control is passed from a first thread related to the first and second instructions to a second thread of the multi-threaded software that is unrelated to the first and second instructions, thereby generating a modified version of the software; and running the modified version of the software on the computer to determine whether there are any concurrent bugs related to the non-atomic variable.