ACM Home Page
Please provide us with feedback. Feedback
Enabling tracing Of long-running multithreaded programs via dynamic execution reduction
Full text PdfPdf (369 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the 2007 international symposium on Software testing and analysis table of contents
London, United Kingdom
SESSION: Dynamic analysis table of contents
Pages: 207 - 218  
Year of Publication: 2007
ISBN:978-1-59593-734-6
Authors
Sriraman Tallam  University of Arizona
Chen Tian  University of Arizona
Rajiv Gupta  University of Arizona
Xiangyu Zhang  Purdue University
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 54,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1273463.1273491
What is a DOI?

ABSTRACT

Debugging long running multithreaded programs is a very challenging problem when using tracing-based analyses. Since such programs are non-deterministic, reproducing the bug is non-trivial and generating and inspecting traces for long running programs can be prohibitively expensive. We propose a framework in which, to overcome the problem of bug reproducibility, a lightweight logging technique is used to log the events during the original execution. When a bug is encountered, it is reproduced using the generated log and during the replay, a fine-grained tracing technique is employed to collect control-flow/dependence traces that are then used to locate the root cause of the bug. In this paper, we address the key challenges resulting due to tracing, that is, the prohibitively high expense of collecting traces and the significant burden on the user who must examine the large amount of trace information to locate the bug in a long-running multithreaded program. These challenges are addressed through execution reduction that realizes a combination of logging and tracing such that traces collected contain only the execution information from those regions of threads that are relevant to the fault. This approach is highly effective because we observe that for long running multithreaded programs, many threads that execute are irrelevant to the fault. Hence, these threads need not be replayed and traced when trying to reproduce the bug. We develop a novel lightweight scheme that identifies such threads by observing all the interthread data dependences and removes their execution footprint in the replay run. In addition, we identify regions of thread executions that need not be replayed or, if they must be replayed, we determine if they need not be traced. Following execution reduction, the replayed execution takes lesser time to run and it produces a much smaller trace than the original execution. Thus, the cost of collecting traces and the effort of examining the traces to locate the fault are greatly reduced.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
www.mysql.org
 
2
 
3
 
4
 
5
 
6
 
7
8
9
10
 
11
 
12
S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou, "BugBench: a benchmark for evaluating bug detection tools", Workshop on the Evaluation of Software Defect Detection Tools, 2005.
13
14
15
16
17
 
18
19
 
20
M. Ronsse, K. De Bosschere, and J. C. de Kergommeaux, "Execution replay and debugging", Fourth Workshop on Automated and Analysis-Driven Debugging, Munich, Germany, August 2000.
21
22
23
 
24
J. Seward et al. "Valgrind: A GPL'd system for debugging and profiling x86-linux programs", http://valgrind.ked.org/, 2004.
 
25
26
27
28
 
29
30

Collaborative Colleagues:
Sriraman Tallam: colleagues
Chen Tian: colleagues
Rajiv Gupta: colleagues
Xiangyu Zhang: colleagues