home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / dev / enforcer-37.55.lha / Enforcer-37.55 / Enforcer.doc < prev    next >
Text File  |  1993-10-11  |  53KB  |  1,253 lines

  1. TABLE OF CONTENTS
  2.  
  3. Enforcer
  4. FindHit
  5. LawBreaker
  6. Move4K
  7. RebootOff
  8. SegTracker
  9. Enforcer                                                             Enforcer
  10.  
  11.    NAME
  12.     Enforcer V37 - An advanced version of Enforcer - Requires V37
  13.  
  14.    SYNOPSIS
  15.     Enforcer - A tool to watch for illegal memory accesses
  16.  
  17.    FUNCTION
  18.     Enforcer will use the MMU in the advanced 680x0 processors
  19.     to set up MMU tables to watch for illegal accesses to memory
  20.     such as the low-page and non-existent pages.
  21.  
  22.     To use, run Enforcer (plus any options you may wish)
  23.     If you wish to detach, just use RUN >NIL: <NIL: to start it.
  24.     You can also start it from the Workbench.  When started from Workbench,
  25.     Enforcer will read the tooltypes of its icon or selected project icon
  26.     for its options.  (See the sample project icons)
  27.  
  28.     Enforcer should only be run *after* SetPatch.
  29.  
  30.     If SegTracker is running in the system when Enforcer is started,
  31.     Enforcer will use the public SegTracker seglist tracking for
  32.     identifying the hits.
  33.  
  34.    INPUTS
  35.     The options for Enforcer are as follows:
  36.  
  37.     QUIET/S        - This tells Enforcer to not complain about any invalid
  38.                      access and to just build MMU tables for cache setting
  39.                      reasons -- mainly used in conjunction with an
  40.                      Amiga BridgeBoard in a 68030 environment so that
  41.                      the system can run with the data cache turned on.
  42.                      In this case,
  43.                                     RUN >NIL: Enforcer QUIET
  44.                      should be placed into the startup-sequence right
  45.                      after SetPatch.
  46.  
  47.     TINY/S         - This tells Enforcer to output a minimal hit.  The
  48.                      output is basically the first line of the Enforcer
  49.                      hit.  (see below)
  50.  
  51.     SMALL/S        - This tells Enforcer to output the hit line, the
  52.                      USP: line, and the Name: line.  (This means that
  53.                      no register or stack display will be output)
  54.  
  55.     SHOWPC/S       - This tells Enforcer to also output the two lines
  56.                      that contain the memory area around the PC where
  57.                      the hit happened.  Useful for disassembly.
  58.                      This option will not do anything if QUIET, SMALL or
  59.                      TINY output modes are selected.
  60.  
  61.     STACKLINES/K/N - This lets you pick the number of lines of stack
  62.                      backtrace to display.  The default is 2.  If set
  63.                      to 0, no stack backtrace will be displayed.  There
  64.                      is NO ENFORCED LIMIT on the number of lines.
  65.  
  66.     STACKCHECK/S   - This option tells Enforcer that you wish all of
  67.                      the long words displayed in the stack to be checked
  68.                      against the global seglists via SegTracker.
  69.                      This will tell you what seglist various return
  70.                      addresses are on the stack.  If you are not
  71.                      displaying stack information in the Enforcer hit
  72.                      then STACKCHECK will have nothing to check.
  73.                      If you are displaying stack information, then
  74.                      each long word will be check and only those which
  75.                      are in one of the tracked seglists will be
  76.                      displayed in a SegTracker line.
  77.                      The output will show the PC address first and
  78.                      then work its way back on the stack such that you
  79.                      can read it from bottom up as the order of calling
  80.                      or from top down as the stack-frame backtrace.
  81.  
  82.     AREGCHECK/S    - This option tells Enforcer that you wish all of
  83.                      the values in the Address Registers checked via
  84.                      SegTracker, much like STACKCHECK.
  85.  
  86.     DREGCHECK/S    - This option tells Enforcer that you wish all of
  87.                      the values in the Data Registers checked via
  88.                      SegTracker, much like STACKCHECK.
  89.  
  90.     DATESTAMP/S    - This makes Enforcer output a date and time with each
  91.                      hit.  Due to the nature of the way Enforcer must
  92.                      work, the time can not be read during the Enforcer
  93.                      hit itself so the time output will be the last time
  94.                      value the main Enforcer task set up.  Enforcer will
  95.                      update this value every second as to try to not
  96.                      use any real CPU time.  The time displayed in the
  97.                      hit will thus be exact.
  98.                      (Assuming the system clock is correct.)
  99.                      The date is output before anything from the hit
  100.                      other than the optional introduction string.
  101.  
  102.     DEADLY/S       - This makes Enforcer be a bit more nasty.  Normally,
  103.                      when an illegal read happens, Enforcer returns 0
  104.                      as the result of this read.  With this option,
  105.                      Enforcer will return $ABADFEED as the read data.
  106.                      This option can make programs with Enforcer hits
  107.                      cause even more hits.
  108.  
  109.     FSPACE/S       - This option will make the special $00F00000 address
  110.                      space available for writing to.  This is useful for
  111.                      those people with $00F00000 boards.  Mainly Commodore
  112.                      internal development work -- should only be used
  113.                      in that enviroment.
  114.  
  115.     VERBOSE/S      - This option will make Enforcer display information
  116.                      as to the mapping of the I/O boards and other
  117.                      technical information.  This information maybe useful
  118.                      in specialized debugging.
  119.  
  120.     LED/K/N        - This option lets you specify the speed at which
  121.                      the LED will be toggled for each Enforcer hit.
  122.                      The default is 1 (which is like it always was)
  123.                      Setting it to 0 will make Enforcer not touch
  124.                      the LED.  Using a larger value will make the
  125.                      flash take longer (such that it can be noticed
  126.                      when doing I/O models other than the default
  127.                      serial output)  The time that the flash will
  128.                      take is a bit more than 1.3 microseconds times
  129.                      the number.  So 1000 will be a bit more than
  130.                      1.3 milliseconds.  (Or 1000000 is a bit more than
  131.                      1.3 seconds.)
  132.  
  133.     PARALLEL/S     - This option will make Enforcer use the parallel port
  134.                      hardware rather than the serial port for output.
  135.  
  136.     RAWIO/S        - This option will make Enforcer stuff the hit report
  137.     (special IO)     into an internal buffer and then from the main
  138.                      Enforcer process output the results via the
  139.                      RawPutChar() EXEC debugging LVO.  Since the output
  140.                      happens on the Enforcer task it is possible for a
  141.                      hit that ends in a system crash to not be able to
  142.                      be reported.  This option is here such that tools
  143.                      which can redirect debugging output can redirect
  144.                      the Enforcer output too.
  145.  
  146.     FILE/K         - This option will make Enforcer output the hit report
  147.     (special IO)     but to a file insted of sending it to the hardware
  148.                      directly or using the RAWIO LVO.  A good example of
  149.                      such a file is CON:0/0/640/100/HIT/AUTO/WAIT.
  150.                      Another thing that can be done is to have a program
  151.                      sit on a named pipe and have Enforcer output to it.
  152.                      This program can then do whatever it feels like with
  153.                      the Enforcer hits.  (Such as decode them, etc.)
  154.                      *NOTE*  It is not a good idea to have Enforcer hits
  155.                      go to a file on a disk as if the system crashes
  156.                      during/after the Enforcer hit, the disk may
  157.                      become corrupt.
  158.  
  159.     STDIO/S        - This option will make Enforcer output the hit report
  160.     (special IO)     to STDOUT.  This option only works from the CLI as it
  161.                      requires STDOUT.  It is best used with redirection or
  162.                      pipes.
  163.  
  164.     BUFFERSIZE/K/N - This lets you set Enforcer's internal output buffer
  165.                      for the special I/O options.  This option is only
  166.                      valid with the RAWIO, FILE, or ST