Proceedings of the 2012 International Symposium on Software Testing
(ISSTA '12), ACM, New York, NY, pp. 221-231 (2012)
Ke Zhai 2 , Boni Xu 2 , W.K. Chan 3 , and T.H. Tse 2
[author-izer free download from ACM digital library]
Dynamic race detectors can explore multiple thread schedules of a multithreaded program over the same input to detect data races.
Although existing sampling-based precise race detectors reduce overheads effectively so that lightweight precise race detection can be performed in testing or post-deployment environments, they are ineffective in detecting races if the sampling rates are low.
This paper presents CARISMA to address this problem. CARISMA exploits the insight that along an execution trace, a program may potentially handle many accesses to the memory locations created at the same site for similar purposes.
Iterating over multiple execution trials of the same input, CARISMA estimates and distributes the sampling budgets among such location creation sites, and probabilistically collects a fraction of all accesses to the memory locations associated with such sites for subsequent race detection.
Our experiment shows that, compared with PACER on the same platform and at the same sampling rate (such as 1%), CARISMA is significantly more effective.
Keywords: Concurrency, Data Races, Sampling, Bug Detection
|EVERY VISITOR COUNTS:|