123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- .\" $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 -f -c -p.
- These options may be overridden at runtime as follows:
- em -t turns the test option of; em +c turns count on ; em +p turns profile
- on ; em +c +p turns both count and profile on.
- 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.
- The information in the header of the e.out file is used by em to select the
- right interpreter for the word size of used in the e.out file.
- .PP
- This interpreter is searched for in /usr/em/lib/int[24]4.
- .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.
- Currently this option is not installed in the em tree.
- .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, a human readable file .
- 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.
- This option is used simultaneously with the test option.
- .PP
- These flags
- give rise to 5 different interpreters which are in the
- directory /usr/em/lib/int24 or in /usr/em/lib/int44
- for the two byte word or the four byte word options, respectively.
- .PP
- .SH "FILES"
- .IP /usr/em/lib/int[24]4/em_???? 35
- interpreters proper
- .PD 0
- .IP /usr/em/mach/m68k2/int/mloop?
- source of interpreter
- .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"
- \fIack\fP(I),
- \fIint24\fP(I),
- \fIint44\fP(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.
- If 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 \fIclaimstack\fP in deffile.
- .SH AUTHOR
- Freek van Schagen
|