This program keeps informations about the last software failure and will
print out as many informations as available, the guru number, the task
address, its name, the program counter at failure time, the register values
and the time and date of the crash.
Crash data is tried to make "reset proof" so the data should be available
even after the guru. A miminal subset of the data, the guru number and the
task pointer will be available even in fatal situations.
_____________________________________________________________________________
This minor update includes an updated .DDT file which includes the PoolMem
guru codes.
_____________________________________________________________________________
Synopsis:
LastGuru DDT/K,INSTALLPATCH/S,KEEPRESIDENT/S,
CLEAR/S,REMRESIDENT/S,HIGHLEVEL/S,QUIET/S
DDT: A "Data Description Table" defining readable names for
the guru numbers. A minimal "DDT" file is included in this
distribution, more complete files are in the "COP" debugger
archive by the same author.
If you installed COP anyways, you should prefer the complete
file.
For details about the syntax of these files, consider the
"COP" documentation, but I think the format is rather
self-explanatory.
INSTALLPATCH: Assigns LastGuru to install its Alert() and exception
handler patches. With the help of these patches, LastGuru
will be able to gather more information about the crash.
If the patches ARE NOT installed, only miminal information
might be available, if at all.
WARNING: DO NOT RUN A RESIDENT COPY OF LASTGURU WITH THIS
ARGUMENT, THIS WILL CRASH YOUR SYSTEM. In other words,
don't make LastGuru resident first, and then call it with
this argument. Either, don't make it resident at all, or
install the patches BEFORE making LastGuru resident.
If you want to install the patches, LastGuru *should* be
started AFTER DiskSafe or the task information will be
wrong, due to the way how the DiskSafe Alert() patch works.
KEEPRESIDENT: Tell LastGuru to link in its resident module. This module
*tries* to keep the guru data reset proof, provided the
system is in a good mood. This argument does NOT auto-
matically include INSTALLPATCH, so you might want to give
both arguments if you're running LastGuru for the first
time.
CLEAR: After having dumped the guru data, clear it so the next
invocation does not print the same data again.
REMRESIDENT: Remove the resident module from the resident list. The
module and hence the verbose guru data will vanish on
the next reset.
HIGHLEVEL: Ignore the low level debug information at addresses
0x100 and 0x104. This might be desireable because these
addresses may contain random data after a power-on.
However, NOT checking these addresses may result in
over-looking a guru after a serious crash.
Should not be used unless the LastGuru patches have been
installed with INSTALLPATCH or LastGuru won't be able to
print anything at all.
QUIET: Does not print any message at all if no crash was detected.
If this argument is not given, LastGuru will dump at least
the current date.
The output of this program might be redirected to a file, to keep a log of
recent "software failures".
_____________________________________________________________________________
Special caveats:
- The guru data kept in the resident module cannot be preserved always. If
the system is just in a too bad state and too much is broken, the Os won't
be able to keep the data resident at all. Only a minimal subset is available
in this case, if at all.
- LastGuru will read the addresses 0x0, 0x100 and 0x104 and interpret the
data in these absolute addresses. The first contains "HELP" in case of an
exception which is put there by the Os, or "LAST" if LastGuru placed its
data there. An additional case, which is not yet scanned is "COP " if COP
kept guru information. However, LastGuru is most likely not required in
conjuction with COP. 0x100 contains always the guru number. 0x104 is either
internal information in case the Os filled it - the supervisor stack pointer
for Os 3.1 - or the task address for "LastGuru" data.
- After a power-on, LastGuru will find in addresses 0x100 and 0x104 what-
ever the RAM appeared to contain there. These addresses are never initialized
by the Os. Therefore, the first invocation of LastGuru after a power up might
present bizarre guru information. It might be desireable to run LastGuru
with a "Clear" argument after power-on and ignore its outputs alltogether,
or, as a different approach, use the HIGHLEVEL argument.
However, this address range is the only guru information source in case of
a real bad crash and might well contain the only useful source for debugging
after such a crash. Since LastGuru does not know whether a power on was
performed or a serious crash happened, the contents of these addresses are
printed anyways.
_____________________________________________________________________________
Additional "goodies":
Alert ALERT/A This is a test program, it will create an alert.
The argument is the guru number to be thrown, or
0 for an illegal instruction and
1 for a privilege violation hardware exception.
The argument is accepted in decimal, or hex notation with leading "$"
or "0x".
Bugs: Yes, this program will guru. (-:
_____________________________________________________________________________
Credits:
Thanks to Raphael Pilarczyk for testing the beta releases of this program.
_____________________________________________________________________________
The THOR-Software Licence (v2, 24th June 1998)
This License applies to the computer programs known as "LastGuru". The
"Program", below, refers to such program. The "Archive" refers to the
package of distribution, as prepared by the author of the Program,
Thomas Richter. Each licensee is addressed as "you".
The Program and the data in the archive are freely distributable
under the restrictions stated below, but are also Copyright (c)
Thomas Richter.
Distribution of the Program, the Archive and the data in the Archive by a
commercial organization without written permission from the author to any
third party is prohibited if any payment is made in connection with such
distribution, whether directly (as in payment for a copy of the Program) or
indirectly (as in payment for some service related to the Program, or
payment for some product or service that includes a copy of the Program
"without charge"; these are only examples, and not an exhaustive enumeration
of prohibited activities).
However, the following methods of distribution
involving payment shall not in and of themselves be a violation of this
restriction:
(i) Posting the Program on a public access information storage and
retrieval service for which a fee is received for retrieving information
(such as an on-line service), provided that the fee is not
content-dependent (i.e., the fee would be the same for retrieving the same
volume of information consisting of random data).
(ii) Distributing the Program on a CD-ROM, provided that
a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
especially this licence agreement;
b) the CD-ROM is made available to the public for a nominal fee only,
c) a copy of the CD is made available to the author for free except for
shipment costs, and
d) provided further that all information on such CD-ROM is redistributable
for non-commercial purposes without charge.
Redistribution of a modified version of the Archive, the Program or the
contents of the Archive is prohibited in any way, by any organization,
regardless whether commercial or non-commercial. Everything must be kept
together, in original and unmodified form.
Limitations.
THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
Thomas Richter
_____________________________________________________________________________
Thomas,
November 1998
|