Loading...
Please wait, while we are loading the content...
Similar Documents
Abstract framework for instruction-level tracing and analysis of program executions.
| Content Provider | CiteSeerX |
|---|---|
| Author | Bhansali, Sanjay Drinić, Milenko Chau, Joe Mihočka, Darek Jong, Stuart Murray, Ron Chen, Wen-Ke Edwards, Andrew |
| 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. |
| File Format | |
| Access Restriction | Open |
| Subject Keyword | Reasonable Runtime Overhead Program Behavior Backward Direction Full Fidelity Program Dynamic Behavior Program Execution Trace Significant Size Intimate Detail Performance Overhead Runtime Framework Major Obstacle Instruction-level Tracing Information Output Full Potential Time Travel Debugger Data Locality Execution Trace User-mode Trace Failure Diagnosis Short Execution Scenario Regular Debugging Session Particular Task Wide Variety Abstract Framework Software Metric Test Prioritization Real World Application Novel Compression Scheme Dynamic Working Set Program Analysis Tool Program Analysis Program Execution Instruction Level Program Optimization |
| Content Type | Text |