Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (2013)
Edinburgh, United Kingdom United Kingdom
Sept. 7, 2013 to Sept. 11, 2013
Justin Gottschlich , Intel Corp., Hillsboro, OR, USA
Gilles Pokam , Intel Corp., Hillsboro, OR, USA
Cristiano Pereira , Intel Corp., Hillsboro, OR, USA
Youfeng Wu , Intel Corp., Hillsboro, OR, USA
To reduce the complexity of debugging multithreaded programs, researchers have developed many techniques that automatically detect bugs that arise from shared memory errors. These techniques can identify a wide range of bugs, but it can be challenging for a programmer to reproduce a specific bug that he or she is interested in using such techniques. This is because these techniques were not intended for individual bug reproduction but rather an exploratory search for possible bugs. To address this concern we present concurrent predicates (CPs) and concurrent predicate expressions (CPEs), which allow programmers to single out a specific bug by specifying the schedule and program state that must be satisfied for the bug to be reproduced. We present the recipes, that is, the mechanical processes, we use to reproduce data races, atomicity violations, and deadlocks with CP and CPE. We then show how these recipes apply to the diagnosis and reproduction of bugs from 13 handcrafted bugs, five real-world application bugs from RADBench, and three previously unresolved bugs from TBoost.STM, which now includes the fixes we generated using CP and CPE.
Computer bugs, Concurrent computing, Instruction sets, Interference, Compounds, Complexity theory, Debugging
J. Gottschlich, G. Pokam, C. Pereira and Youfeng Wu, "Do inputs matter?: using data-dependence profiling to evaluate thread level speculation in BG/Q," Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques(PACT), Edinburgh, United Kingdom United Kingdom, 2013, pp. 331-340.