Daikon - Program Invariants Detection
Database Project

CSE444 Spring 99 Group 11

Navigation


Project Description descript/descript.htm

Database structure
dbstructure/
dbstructure.htm
.

Source code
src/src.htm.

Management of the project management/
management.htm

MySQL database system mysql/mysql.htm

Appendices are in appendix/appendix.htm.


Gabriel's Home

Kalon's Home

Patrick's Home

Phu's Home

CSE444 Spring 99 homepage

The Team Members

Gabriel Deal

Kalon Jelen (Project Leader)

Phu Nguyen

Patrick Snyder

The Client

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:

  1. Install probe statements in the program to be analyzed.
  2. 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.
  3. 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.
  4. 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.
  5. Run the analysis program to retrieve and analyze the tuples.
  6. 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 .


Webmaster: Patrick Snyder
Last modified: 6/8/99
This file: index.htm

Back to top