To use this simulator to simulate the performance of real programs it is necessary to somehow generate the required setup and behavior files.
The setup information for the simulator was not too difficult to obtain. The make utility was used to generate file dependencies [3]. The ctags utility determined which functions were contained in each source file. File sizes were obtained using wc. We gathered data on compilation times by compiling the programs with the gcc compiler and using the time utility to report the system and user time needed to compile each file.
Obtaining the behavior traces proved to be more difficult. Neither Gprof nor purify could supply us with the needed data.
We were fortunate to have Jim Larus' excellent tool
EEL [15] for instrumenting the executables to generate trace
information. Noah Treuhaft
used EEL to
create a utility (called eer) to modify binary executables of
our test programs. When these instrumented binaries are subsequently
executed, each procedure entry and exit causes a time-stamped record
to be generated for the behavior file. While the behavior traces
produced in this manner are voluminous, they provide a detailed
account of where time is spent in the program's functions.