88 lines
2.9 KiB
Groff
88 lines
2.9 KiB
Groff
.\" $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.
|
|
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.
|
|
.PP
|
|
This interpreter is first searched for in /usr/em/mach/pdp/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 maintain tables containing
|
|
an estimate of the number of memory cycles used per source line.
|
|
This option is expensive in time as well as in memory space.
|
|
The result tables made at run time are dumped onto a file named
|
|
em_runinf. This file is converted to human readable format
|
|
by the program eminform(I) which writes the profiling information
|
|
on a file called em_profile.
|
|
.IP f
|
|
maintain a bit map of all source lines that have been executed.
|
|
This map is written also onto the file em_runinf and can be interpreted by eminform(I) which writes in this case the file em_flow.
|
|
This option is almost free in time and space.
|
|
.IP c
|
|
count line usage in tables that
|
|
contains for every source line the number of times it
|
|
was entered.
|
|
These tables are also written onto em_runinf.
|
|
Eminform(I) can be used to convert this information into the
|
|
file em_count.
|
|
Cheap in time, expensive in memory space.
|
|
.PP
|
|
These flags
|
|
give rise to 5 different interpreters which are in the
|
|
directory /usr/em/mach/pdp/int
|
|
.PP
|
|
If the interpreter exits with a non-zero exit status, then the line numbers
|
|
of the 64 last executed source lines are dumped on the file
|
|
em_runinf
|
|
in the current directory. Eminform(I) writes this information
|
|
on the human readable file em_last.
|
|
.SH "FILES"
|
|
.IP /usr/em/mach/pdp/int/em_???? 35
|
|
interpreters proper
|
|
.PD 0
|
|
.IP /usr/em/lib/pdp_int/em_????
|
|
source of interpreter
|
|
.IP /usr/em/mach/pdp/int/?+
|
|
positive option switch
|
|
.IP /usr/em/mach/pdp/int/?-
|
|
negative option switch
|
|
.IP em_runinf
|
|
memory dump containing runtime information
|
|
.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"
|
|
eminform(I), ack(I), int(I)
|
|
.SH BUGS
|
|
Most error messages are self explanatory.
|
|
The interpreter stops in case of lack of space with an error
|
|
message SEGVIO stack overflow.
|
|
If runtime flags are turned on it is advisable to try again
|
|
with the default options.
|
|
Bugs should be reported to Evert Wattel.
|