Gabriel Deal
Kalon Jelen (Project Leader)
Phu Nguyen
Patrick Snyder
Mike Ernst,
primary contact. Location: Sieg Hall room 232.
The Daikon Project
The Daikon Project is a research effort into methods
for discovering program invariants by dynamic analysis
of computer programs.
This research is being performed by a group in the
Computer Science Department
(http://www.cs.washington.edu)
at the University of Washington.
The Database Project
The Database Project is a small part of the
overall Daikon Research Project.
A program analysis generates hundreds of megabytes
of data, and the purpose of the Database Project
is twofold:
-
Store the data offline in a powerful database.
-
Provide facilities to support analysis of the
data.
Two programs,
parselog and idinterface,
have been created to perform these two
functions.
Their
Source Code
is included here.
Using the Database Software
Analyzing a program for invariants takes six steps,
of which three involve the Database Software.
The overall sequence of operations is:
-
Install probe statements in the program to be
analyzed.
-
Run the program.
The probe statements will write data that record
the state of various variables at various points
in the program to a trace file.
-
Parse the trace file using parselog, a Perl
program created as part of the Database Project.
parselog enters the data from the trace file
into a database in MySQL.
-
Write a program in C to analyze the data in the
database.
C functions to access the data were also created
as part of this project, and are provided in
the idinterface (invariant
detector interface) software package.
Using the functions, the analysis program can provide
a database name (which corresponds to a trace file),
a program point, and one or more variable names
(tuples), and retrieve the tuples from the database.
A researcher can use the system without writing
SQL queries or knowing how to use MySQL; the
C functions encapsulate and hide that.
-
Run the analysis program to retrieve and analyze
the tuples.
-
Ponder the results.
In addition to the parselog and idinterface software, the
Source Code
section includes example input data
sets and a sample data-retrieval program which uses
the data-retrieval functions to
retrieve data from a database.
Detailed documentation on how to use functions
is also provided here.
Detailed descriptions of the Daikon Project
and the Database Project are at
descript/descript.htm
.
|