76 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $Header$
 | |
| .TH EM 1 "$Revision$"
 | |
| .ad
 | |
| .SH NAME
 | |
| em \- calling program for em interpreters
 | |
| .SH SYNOPSIS
 | |
| \fBem\fP [-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/em22/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/em22/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.
 |