1 03/26/85  mc_trace, mct
  2 
  3 Syntax as a command:  mct path {-control_args}
  4 
  5 
  6 Function:  gives a snapshot of machine conditions and history registers
  7 (resulting from hardware faults and interrupts) incurred while
  8 executing another Multics command or subroutine.
  9 
 10 
 11 Arguments:
 12 path
 13    is the absolute or relative pathname of the segment that is to be
 14    traced.
 15 
 16 
 17 Control arguments:
 18 -all
 19    captures machine conditions and history registers for every fault
 20    and interrupt that occurs in your process.  This control argument
 21    cannot be used with -hc or the path argument.
 22 -brief, -bf
 23    suppresses printing the "-->" prompt.
 24 
 25 
 26 -buffer N, -buf N
 27    sets the machine condition trace buffer size to N, where N is a
 28    decimal integer value from 1 to 16, and represents the buffer size
 29    in units of 1024 words (1K).  The default buffer size is 5K words.
 30 -hc SEG
 31    captures machine conditions and history registers for faults and
 32    interrupts that occur in the hardcore segment SEG while your process
 33    is in execution.  SEG can be a hardcore segment name or number.
 34    This control argument cannot be used with -all or the path argument.
 35 
 36 
 37 Notes:  This command initiates the segment specified by the path
 38 argument, and creates the machine condition trace buffer in your
 39 process directory.  The number of machine conditions and history
 40 register sets that can be stored is directly related to the size of the
 41 trace buffer.  There is an approximate 8 to 1 ratio of machine
 42 conditions to history registers (e.g., in a 5K buffer there would be
 43 storage for 79 sets of machine conditions and 10 sets of history
 44 registers, allowing room for a trace buffer header).  The trace buffer
 45 is temporarily "wired" (i.e., the segment remains in main storage and
 46 is not subject to removal by the dynamic paging mechanism).  The
 47 hardcore snapshot or trace mechanism is then enabled and mc_trace goes
 48 into a request loop after printing "-->" as your prompt on the
 49 error_output switch.  The valid user reponses while in this request
 50 loop are as follows:
 51 
 52 
 53 .
 54    prints out the command name "mc_trace" on the user_output switch.
 55 .q
 56    turns the hardcore snapshot mechanism off, unwires the machine
 57    condition buffer, and returns to Multics command level.
 58 calls the Multics command processor and executes <command> as a Multics
 59    command (e.g., ..who).
 60 .rpt n <command>
 61    calls the Multics command processor to loop n times, executing the
 62    specified Multics command <command>; n is an integer from 1 to
 63    99999999 (e.g., .rpt 10 who).
 64 
 65 
 66 .pmc m n
 67    displays machine conditions in octal starting with machine condition
 68    set m for n sets.  The integer m therefore represents a negative
 69    index from the last set of machine conditions stored (e.g., the
 70    request ".pmc 8 2" would be interpreted to mean, "display two sets
 71    of machine conditions starting from the last machine conditions
 72    stored at position 8").  If n is not specified, then all machine
 73    conditions starting at m to the last machine conditions stored are
 74    displayed.  If neither m nor n are specified, all sets of machine
 75    conditions are displayed.
 76 .pmci m n
 77    same as .pmc above except that the machine conditions are displayed
 78    in interpreted format.
 79 
 80 
 81 .pscu m n
 82    same as .pmc above except that only the System Control Unit (SCU)
 83    data for the specified number of machine conditions is printed,
 84    displayed in interpreted format.
 85 .hr m n
 86    displays history registers in octal, starting with history register
 87    set m for n sets.  The variables m and n are defined as in .pmc
 88    above.
 89 .hrou m n
 90    same as .hr above except that only the Operations Unit (OU) history
 91    register is displayed in octal.
 92 .hrcu m n
 93    same as .hr above except that only the Control Unit (CU) history
 94    registers are displayed in octal.
 95 
 96 
 97 .hrdu m n
 98    same as .hr above except that only the Decimal Unit (DU) history
 99    registers are displayed in octal.
100 .hrau m n
101    same as .hr above except that only the Appending Unit (AU) history
102    registers are displayed in octal.
103 .hranl m n
104    same as .hr above except that the specified number of history
105    registers are displayed in interpreted format.
106 .hrlgd
107    produces a list of abbreviations used with the .hranl request above.
108 
109 
110 The mc_trace command invokes a condition handler for the "any_other"
111 condition.  When any unusual system condition is encountered, a message
112 indicating the condition that was raised is displayed on the
113 error_output I/O switch, and control is passed to the request loop.  At
114 this time, any of the valid requests described above can be entered.
115 For further information on system conditions, refer to the Multics
116 Programmer's Reference Manual, Order No.  AG91).
117 
118 
119 Access required:  To use mc_trace, you must have re access to phcs_.