em.1 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. .\" $Header$
  2. .TH EM I
  3. .ad
  4. .SH NAME
  5. em \- calling program for em interpreters
  6. .SH SYNOPSIS
  7. em [-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(V).
  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. This interpreter is first searched for in /usr/em/mach/pdp/int, then in the current
  20. directory.
  21. .PP
  22. The flags control the following options that can be turned off
  23. or on by prepending them with - or + respectively:
  24. .IP t
  25. run time tests for undefined variables, array bounds etc...
  26. This option costs a small amount of memory and some time.
  27. However, it is very useful for debugging.
  28. .IP p
  29. profiling of the entire program. The interpreter maintain tables containing
  30. an estimate of the number of memory cycles used per source line.
  31. This option is expensive in time as well as in memory space.
  32. The result tables made at run time are dumped onto a file named
  33. em_runinf. This file is converted to human readable format
  34. by the program eminform(I) which writes the profiling information
  35. on a file called em_profile.
  36. .IP f
  37. maintain a bit map of all source lines that have been executed.
  38. 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.
  39. This option is almost free in time and space.
  40. .IP c
  41. count line usage in tables that
  42. contains for every source line the number of times it
  43. was entered.
  44. These tables are also written onto em_runinf.
  45. Eminform(I) can be used to convert this information into the
  46. file em_count.
  47. Cheap in time, expensive in memory space.
  48. .PP
  49. These flags
  50. give rise to 5 different interpreters which are in the
  51. directory /usr/em/mach/pdp/int
  52. .PP
  53. If the interpreter exits with a non-zero exit status, then the line numbers
  54. of the 64 last executed source lines are dumped on the file
  55. em_runinf
  56. in the current directory. Eminform(I) writes this information
  57. on the human readable file em_last.
  58. .SH "FILES"
  59. .IP /usr/em/mach/pdp/int/em_???? 35
  60. interpreters proper
  61. .PD 0
  62. .IP /usr/em/lib/pdp_int/em_????
  63. source of interpreter
  64. .IP /usr/em/mach/pdp/int/?+
  65. positive option switch
  66. .IP /usr/em/mach/pdp/int/?-
  67. negative option switch
  68. .IP em_runinf
  69. memory dump containing runtime information
  70. .IP em_profile
  71. profile data
  72. .IP em_count
  73. source line count data
  74. .IP em_flow
  75. source line flow data
  76. .IP em_last
  77. last lines executed
  78. .PD
  79. .SH "SEE ALSO"
  80. eminform(I), ack(I), int(I)
  81. .SH BUGS
  82. Most error messages are self explanatory.
  83. The interpreter stops in case of lack of space with an error
  84. message SEGVIO stack overflow.
  85. If runtime flags are turned on it is advisable to try again
  86. with the default options.
  87. Bugs should be reported to Evert Wattel.