This collaborative project, developing an open source software infrastructure that is capable of tracing and analyzing long program executions, features customizability, extensibility, and most importantly, the capability of collecting prolific types of execution traces for realistic executions on single- and multi-threaded programs. The work is feasible due to the fact that, at present, checkpointing/logging can be effectively combined with tracing through a technique called Execution Fast Forwarding (EFF) that enables scaling up tracing by orders of magnitude and availability of a highly compacted trace representation called Whole Execution Trace (WET) composed of static program representation that is annotated with dynamic traces including control flow, address, value, and a dependence trace that can contain complete program execution history in compacted form. Components of the infrastructure include . Checkpointing/logging environment that will execute a given binary on the supplied input to produce a set of checkpoints and logs which can be used to replay the execution; . Execution fast forwarding components that will eliminate part of the execution that is not relevant to reproducing a given event; . Tracing component to generate, compress, and store the WET (Whole Execution Trace) of a replayed execution interval; and . Trace analysis component to provide an API that will enable users to access WET's with ease, without having to understand the low level detailed representation of WET. Dynamic analysis techniques analyze traces of program executions to characterize the runtime behavior of programs. Distinctive runtime characteristics are then exploited in designing the systems to . Develop highly reliable systems by detecting bugs, locating faults, and testing programs; . Develop secure systems by detecting information leaks and unsafe behavior, and performing software marking; . Validate and verify data by associating the output produced by highly complicated data processing procedures to the raw input data that can greatly facilitate verification of results; . Develop hardware and software for highly optimized systems (e.g., embedded systems that must optimize performance, power, & memory usage) exploiting a wide range of runtime program characteristics (e.g., recurring code sequences to achieve compression, narrow width data to develop energy efficient cache designs & pipelines, etc.).

Broader Impacts: The infrastructure enables rapid prototyping for data verification, computer architecture, compilers, embedded systems, software engineering such as building testers and debuggers, security such as designing watermarking and information flow analysis tools. The uniform representation of logs and WETs provides standard interface to easily exchange traces. Moreover, encouraging synergy among projects, course projects will be designed and provided with the infrastructure.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Type
Standard Grant (Standard)
Application #
0708464
Program Officer
Rita V. Rodriguez
Project Start
Project End
Budget Start
2007-09-01
Budget End
2010-09-30
Support Year
Fiscal Year
2007
Total Cost
$83,552
Indirect Cost
Name
Purdue University
Department
Type
DUNS #
City
West Lafayette
State
IN
Country
United States
Zip Code
47907