ACM Home Page
Please provide us with feedback. Feedback
Framework for instruction-level tracing and analysis of program executions
Full text PdfPdf (228 KB)
Source ACM/Usenix International Conference On Virtual Execution Environments archive
Proceedings of the 2nd international conference on Virtual execution environments table of contents
Ottawa, Ontario, Canada
SESSION: Instrumentation table of contents
Pages: 154 - 163  
Year of Publication: 2006
ISBN:1-59593-332-6
Authors
Sanjay Bhansali  Microsoft Corporation, Redmond, WA
Wen-Ke Chen  Microsoft Corporation, Redmond, WA
Stuart de Jong  Microsoft Corporation, Redmond, WA
Andrew Edwards  Microsoft Corporation, Redmond, WA
Ron Murray  Microsoft Corporation, Redmond, WA
Milenko Drinić  Microsoft Corporation, Redmond, WA
Darek Mihočka  Microsoft Corporation, Redmond, WA
Joe Chau  Microsoft Corporation, Redmond, WA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 15,   Downloads (12 Months): 84,   Citation Count: 22
Additional Information:

abstract   references   cited by   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/1134760.1220164
What is a DOI?

ABSTRACT

Program execution traces provide the most intimate details of a program's dynamic behavior. They can be used for program optimization, failure diagnosis, collecting software metrics like coverage, test prioritization, etc. Two major obstacles to exploiting the full potential of information they provide are: (i) performance overhead while collecting traces, and (ii) significant size of traces even for short execution scenarios. Reducing information output in an execution trace can reduce both performance overhead and the size of traces. However, the applicability of such traces is limited to a particular task. We present a runtime framework with a goal of collecting a complete, machine- and task-independent, user-mode trace of a program's execution that can be re-simulated deterministically with full fidelity down to the instruction level. The framework has reasonable runtime overhead and by using a novel compression scheme, we significantly reduce the size of traces. Our framework enables building a wide variety of tools for understanding program behavior. As examples of the applicability of our framework, we present a program analysis and a data locality profiling tool. Our program analysis tool is a time travel debugger that enables a developer to debug in both forward and backward direction over an execution trace with nearly all information available as in a regular debugging session. Our profiling tool has been used to improve data locality and reduce the dynamic working sets of real world applications.


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
2
3
 
4
 
5
 
6
Wen-Ke Chen, Sorin Lerner, Ronnie Chaiken, and David Gillies, Mojo: a dynamic optimization system, ACM Workshop on Feedback-Directed and Dynamic Optimization (2000), 81--90.
7
8
9
 
10
11
12
 
13
 
14
Samuel T. King, George W. Dunlap, and Peter M. Chen, Debugging operating systems with time-traveling virtual machines, USENIX Annual Technical Conference (2005), 1--15.
15
16
17
18
 
19
Nicholas Nethercote and Julian Seward, Valgrind: a program supervision framework, Electronic Notes in Theoretical Computer Science 89 (2003), no. 2.
 
20
James E. Smith and Ravi Nair, Virtual machines, first ed., Morgan Kaufman, San Francisco, Ca., 2005.
21
 
22
Amitabh Srivastava, Hoi Vo, and Andrew Edwards, Vulcan: binary transformation in distributed environment, Tech. Report MSR-TR-2001-50, Micorosft Research, April 2001.
23
24

CITED BY  22

Collaborative Colleagues:
Sanjay Bhansali: colleagues
Wen-Ke Chen: colleagues
Stuart de Jong: colleagues
Andrew Edwards: colleagues
Ron Murray: colleagues
Milenko Drinić: colleagues
Darek Mihočka: colleagues
Joe Chau: colleagues