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 >
Wrap
Text File
|
1993-10-11
|
53KB
|
1,253 lines
TABLE OF CONTENTS
Enforcer
FindHit
LawBreaker
Move4K
RebootOff
SegTracker
Enforcer Enforcer
NAME
Enforcer V37 - An advanced version of Enforcer - Requires V37
SYNOPSIS
Enforcer - A tool to watch for illegal memory accesses
FUNCTION
Enforcer will use the MMU in the advanced 680x0 processors
to set up MMU tables to watch for illegal accesses to memory
such as the low-page and non-existent pages.
To use, run Enforcer (plus any options you may wish)
If you wish to detach, just use RUN >NIL: <NIL: to start it.
You can also start it from the Workbench. When started from Workbench,
Enforcer will read the tooltypes of its icon or selected project icon
for its options. (See the sample project icons)
Enforcer should only be run *after* SetPatch.
If SegTracker is running in the system when Enforcer is started,
Enforcer will use the public SegTracker seglist tracking for
identifying the hits.
INPUTS
The options for Enforcer are as follows:
QUIET/S - This tells Enforcer to not complain about any invalid
access and to just build MMU tables for cache setting
reasons -- mainly used in conjunction with an
Amiga BridgeBoard in a 68030 environment so that
the system can run with the data cache turned on.
In this case,
RUN >NIL: Enforcer QUIET
should be placed into the startup-sequence right
after SetPatch.
TINY/S - This tells Enforcer to output a minimal hit. The
output is basically the first line of the Enforcer
hit. (see below)
SMALL/S - This tells Enforcer to output the hit line, the
USP: line, and the Name: line. (This means that
no register or stack display will be output)
SHOWPC/S - This tells Enforcer to also output the two lines
that contain the memory area around the PC where
the hit happened. Useful for disassembly.
This option will not do anything if QUIET, SMALL or
TINY output modes are selected.
STACKLINES/K/N - This lets you pick the number of lines of stack
backtrace to display. The default is 2. If set
to 0, no stack backtrace will be displayed. There
is NO ENFORCED LIMIT on the number of lines.
STACKCHECK/S - This option tells Enforcer that you wish all of
the long words displayed in the stack to be checked
against the global seglists via SegTracker.
This will tell you what seglist various return
addresses are on the stack. If you are not
displaying stack information in the Enforcer hit
then STACKCHECK will have nothing to check.
If you are displaying stack information, then
each long word will be check and only those which
are in one of the tracked seglists will be
displayed in a SegTracker line.
The output will show the PC address first and
then work its way back on the stack such that you
can read it from bottom up as the order of calling
or from top down as the stack-frame backtrace.
AREGCHECK/S - This option tells Enforcer that you wish all of
the values in the Address Registers checked via
SegTracker, much like STACKCHECK.
DREGCHECK/S - This option tells Enforcer that you wish all of
the values in the Data Registers checked via
SegTracker, much like STACKCHECK.
DATESTAMP/S - This makes Enforcer output a date and time with each
hit. Due to the nature of the way Enforcer must
work, the time can not be read during the Enforcer
hit itself so the time output will be the last time
value the main Enforcer task set up. Enforcer will
update this value every second as to try to not
use any real CPU time. The time displayed in the
hit will thus be exact.
(Assuming the system clock is correct.)
The date is output before anything from the hit
other than the optional introduction string.
DEADLY/S - This makes Enforcer be a bit more nasty. Normally,
when an illegal read happens, Enforcer returns 0
as the result of this read. With this option,
Enforcer will return $ABADFEED as the read data.
This option can make programs with Enforcer hits
cause even more hits.
FSPACE/S - This option will make the special $00F00000 address
space available for writing to. This is useful for
those people with $00F00000 boards. Mainly Commodore
internal development work -- should only be used
in that enviroment.
VERBOSE/S - This option will make Enforcer display information
as to the mapping of the I/O boards and other
technical information. This information maybe useful
in specialized debugging.
LED/K/N - This option lets you specify the speed at which
the LED will be toggled for each Enforcer hit.
The default is 1 (which is like it always was)
Setting it to 0 will make Enforcer not touch
the LED. Using a larger value will make the
flash take longer (such that it can be noticed
when doing I/O models other than the default
serial output) The time that the flash will
take is a bit more than 1.3 microseconds times
the number. So 1000 will be a bit more than
1.3 milliseconds. (Or 1000000 is a bit more than
1.3 seconds.)
PARALLEL/S - This option will make Enforcer use the parallel port
hardware rather than the serial port for output.
RAWIO/S - This option will make Enforcer stuff the hit report
(special IO) into an internal buffer and then from the main
Enforcer process output the results via the
RawPutChar() EXEC debugging LVO. Since the output
happens on the Enforcer task it is possible for a
hit that ends in a system crash to not be able to
be reported. This option is here such that tools
which can redirect debugging output can redirect
the Enforcer output too.
FILE/K - This option will make Enforcer output the hit report
(special IO) but to a file insted of sending it to the hardware
directly or using the RAWIO LVO. A good example of
such a file is CON:0/0/640/100/HIT/AUTO/WAIT.
Another thing that can be done is to have a program
sit on a named pipe and have Enforcer output to it.
This program can then do whatever it feels like with
the Enforcer hits. (Such as decode them, etc.)
*NOTE* It is not a good idea to have Enforcer hits
go to a file on a disk as if the system crashes
during/after the Enforcer hit, the disk may
become corrupt.
STDIO/S - This option will make Enforcer output the hit report
(special IO) to STDOUT. This option only works from the CLI as it
requires STDOUT. It is best used with redirection or
pipes.
BUFFERSIZE/K/N - This lets you set Enforcer's internal output buffer
for the special I/O options. This option is only
valid with the RAWIO, FILE, or ST