Pristine Ack-5.5
[Ack-5.5.git] / mach / pdp / int / em.1
1 .\" $Id: em.1,v 1.5 1994/06/24 13:18:04 ceriel Exp $
2 .TH EM 1 "$Revision: 1.5 $"
3 .ad
4 .SH NAME
5 em \- calling program for em interpreters
6 .SH SYNOPSIS
7 \fBem\fP [-t] [+fcp] [loadfile [args ... ...] ]
8 .SH DESCRIPTION
9 The loadfile ("e.out" if not specified) is opened to read the first 8 word header.
10 The format of this header is explained in e.out(5).
11 One of these 8 words is a flag word
12 specifying the interpreter options requested at compile time.
13 The usual setting of these options is +t -f -c -p.
14 One of these options may be overridden at run time
15 by the corresponding flag of em.
16 Based on these options the name of the appropriate interpreter
17 is constructed.
18 .PP
19 The flags control the following options that can be turned off
20 or on by prepending them with - or + respectively:
21 .IP t
22 run time tests for undefined variables, array bounds etc...
23 This option costs a small amount of memory and some time.
24 However, it is very useful for debugging.
25 .IP p
26 profiling of the entire program. The interpreter maintain tables containing
27 an estimate of the number of memory cycles used per source line.
28 This option is expensive in time as well as in memory space.
29 The result tables made at run time are dumped onto a file named
30 em_runinf. This file is converted to human readable format
31 by the program eminform(1) which writes the profiling information
32 on a file called em_profile.
33 .IP f
34 maintain a bit map of all source lines that have been executed.
35 This map is written also onto the file em_runinf and can be interpreted by eminform(1) which writes in this case the file em_flow.
36 This option is almost free in time and space.
37 .IP c
38 count line usage in tables that
39 contains for every source line the number of times it
40 was entered.
41 These tables are also written onto em_runinf.
42 Eminform(1) can be used to convert this information into the
43 file em_count.
44 Cheap in time, expensive in memory space.
45 .PP
46 These flags
47 give rise to 5 different interpreters which are in the
48 directory ~em/lib/em22/em_????
49 .PP
50 If the interpreter exits with a non-zero exit status, then the line numbers
51 of the 64 last executed source lines are dumped on the file
52 em_runinf
53 in the current directory. Eminform(1) writes this information
54 on the human readable file em_last.
55 .SH "FILES"
56 .IP ~em/lib/em22/em_???? 35
57 interpreters proper
58 .IP em_runinf
59 memory dump containing runtime information
60 .IP em_profile
61 profile data
62 .IP em_count
63 source line count data
64 .IP em_flow
65 source line flow data
66 .IP em_last
67 last lines executed
68 .PD
69 .SH "SEE ALSO"
70 eminform(1), ack(1),
71 .SH BUGS
72 Most error messages are self explanatory.
73 The interpreter stops in case of lack of space with an error
74 message SEGVIO stack overflow.
75 If runtime flags are turned on it is advisable to try again
76 with the default options.