Initial revision
This commit is contained in:
parent
033000c4e1
commit
f9b1523794
3 changed files with 219 additions and 0 deletions
91
mach/mantra/int/em.1
Normal file
91
mach/mantra/int/em.1
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
.\" $Header$
|
||||||
|
.TH EM 1ACK
|
||||||
|
.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(5).
|
||||||
|
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 ~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 ~em/lib/int24 or in ~em/lib/int44
|
||||||
|
for the two byte word or the four byte word options, respectively.
|
||||||
|
.PP
|
||||||
|
.SH "FILES"
|
||||||
|
.IP ~em/lib/int[24]4/em_???? 35
|
||||||
|
interpreters proper
|
||||||
|
.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),
|
||||||
|
.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
|
77
mach/pdp/int/em.1
Normal file
77
mach/pdp/int/em.1
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
.\" $Header$
|
||||||
|
.TH EM 1ACK
|
||||||
|
.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(5).
|
||||||
|
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
|
||||||
|
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(1) 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(1) 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(1) 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 ~em/lib/int22/em_????
|
||||||
|
.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(1) writes this information
|
||||||
|
on the human readable file em_last.
|
||||||
|
.SH "FILES"
|
||||||
|
.IP ~em/lib/int22/em_???? 35
|
||||||
|
interpreters proper
|
||||||
|
.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(1), ack(1),
|
||||||
|
.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.
|
51
mach/pdp/int/eminform.1
Normal file
51
mach/pdp/int/eminform.1
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
.\" $Header$
|
||||||
|
.tr ~
|
||||||
|
.TH EMINFORM 1ACK
|
||||||
|
.ad
|
||||||
|
.SH NAME
|
||||||
|
eminform \- converts runtime information of interpreted em to
|
||||||
|
human readable form.
|
||||||
|
.SH SYNOPSIS
|
||||||
|
eminform
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The EM interpreter, em(1), has several debugging features built in.
|
||||||
|
They can be activated by flag options to em(1).
|
||||||
|
The EM interpreter collects the information while it runs the program.
|
||||||
|
When the program is terminated, the interpreter dumps this information onto
|
||||||
|
a file called em_runinf.
|
||||||
|
Eminform converts this information in human readable form onto
|
||||||
|
a set of files with fixed names, the file em_runinf itself is unlinked.
|
||||||
|
.PP
|
||||||
|
.in +15
|
||||||
|
.ti -13
|
||||||
|
~~em_last~~~~A circular buffer is used to keep track of
|
||||||
|
the last collection of executed source lines.
|
||||||
|
.ti -13
|
||||||
|
~~em_flow~~~~A bit map for all source lines tells which lines
|
||||||
|
are executed.
|
||||||
|
.ti -13
|
||||||
|
~~em_count~~~Count the number of times each source line was entered.
|
||||||
|
.ti -13
|
||||||
|
~~em_profile~Estimate the number of memory cycles
|
||||||
|
spent on each source line.
|
||||||
|
.in -15
|
||||||
|
.LP
|
||||||
|
The most common use of eminform is to print the numbers of the last executed
|
||||||
|
source lines if an execution error occurred.
|
||||||
|
No arguments are needed in this case.
|
||||||
|
.LP
|
||||||
|
Eminform will create only those files for which there were
|
||||||
|
interpreter flags turned on. If no runtime error occurred and
|
||||||
|
no flag was turned on the file em_runinf is not created. In
|
||||||
|
this case eminform will give the error message "read header
|
||||||
|
failed".
|
||||||
|
.SH FILES
|
||||||
|
em_runinf, em_last, em_flow, em_count, em_profile
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
ack(1), em(1).
|
||||||
|
.SH BUGS
|
||||||
|
If an entire procedure is not touched, the the file name in
|
||||||
|
which this procedure occured is unknown.
|
||||||
|
If no em_runinf is available the error message is "read header
|
||||||
|
failed" and a core dump is created.
|
||||||
|
Bugs should be reported to Evert Wattel
|
Loading…
Add table
Reference in a new issue