.\" $Header$ .TH EM I .ad .SH NAME em \- calling program for em interpreters .SH SYNOPSIS em [-t] [+fcp] [loadfile [args ... ...] ] .SH DESCRIPTION The loadfile ("e.out" if not specified) is opened to read the first 8 word header. The format of this header is explained in e.out(V). One of these 8 words is a flag word specifying the interpreter options requested at compile time. The usual setting of these options is +t +l -f -c -p. One of these options may be overridden at run time by the corresponding flag of em. Based on these options the name of the appropriate interpreter is constructed. Two versions exist, one for two byte words and four byte pointers and one for four byte words and pointers. .PP This interpreter is first searched for in /usr/em/mach/m68k[2,4]/int, then in the current directory. .PP The flags control the following options that can be turned off or on by prepending them with - or + respectively: .IP t run time tests for undefined variables, array bounds etc... This option costs a small amount of memory and some time. However, it is very useful for debugging. .IP p profiling of the entire program. The interpreter maintains tables containing an estimate of the number of processor state cycles used per source line. A processor state cycle is equal to two internal clock cycles. This option is expensive in time as well as in memory space. The result tables made at run time are dumped in a human readable format onto a file named em_profile. .IP f maintain a bit map of all source lines that have been executed. This map is written onto a file em_flow . This option is almost free in time and space. The file is not easy to read . Of each procedure only the lines between the first statement and the last statement are represented in the bit map. .IP c count line usage in tables that contains for every source line the number of times it was entered. These tables are written onto em_count. This option is cheap in time ,but costs some in memory space. .IP l dump the line numbers of the last 64 lines entered onto a file named em_last. This file will be in a human readable format. .PP These flags give rise to 5 different interpreters which are in the directory /usr/em/mach/m68k2/int or in /usr/em/mach/m68k4/int for the two byte word or the four byte word options , respectively. .PP .SH "FILES" .IP /usr/em/mach/m68k[2,4]/int/em_???? 35 interpreters proper .PD 0 .IP /usr/em/lib/m68k2_int/mloop? source of interpreter .IP /usr/em/mach/m68k[2,4]/int/?+ positive option switch .IP /usr/em/mach/m68k[2,4]/int/?- negative option switch .IP em_profile profile data .IP em_count source line count data .IP em_flow source line flow data .IP em_last last lines executed .PD .SH "SEE ALSO" ack(I), int(I) .SH BUGS Most error messages are self explanatory. If runtime flags are turned on it is advisable to try again with the default options. Of the interpreter does not work most probably your particular machine has an other format for the system calls then assumed in the source . In that case adapt source file mloopc to your machine. Also the instruction that causes the machine to allocate stack space might differ . In that case adapt the macro 'claimstack' in deffile. Bugs should be reported to Freek van Schagen.