Abstract :
A recent survey conducted among developers of the Apache, Eclipse, and Mozilla projects showed that the ability to recreate field failures is considered of fundamental importance when investigating bug reports. Unfortunately, the information typically contained in a bug report, such as memory dumps or call stacks, is usually insufficient for recreating the problem. Even more advanced approaches for gathering field data and help in-house debugging tend to collect either too little information, and be ineffective, or too much information, and be inefficient. To address these issues, we present BugRedux, a novel general approach for in-house debugging of field failures. BugRedux aims to synthesize, using execution data collected in the field, executions that mimic the observed field failures. We define several instances of BugRedux that collect different types of execution data and perform, through an empirical study, a cost-benefit analysis of the approach and its variations. In the study, we apply BugRedux to 16 failures of 14 real-world programs. Our results are promising in that they show that it is possible to synthesize in-house executions that reproduce failures observed in the field using a suitable set of execution data.
Keywords :
cost-benefit analysis; program debugging; Apache projects; BugRedux; Eclipse projects; Mozilla projects; bug report investigation; call stacks; cost-benefit analysis; execution data; field data gathering; field failure reproduction; in-house debugging; in-house execution synthesis; memory dumps; Computer crashes; Debugging; Generators; Instruments; MIMICs; Optical fibers; Software;