Short: Keeps data about the last "Software Failure" Author: thor@math.tu-berlin.de (Thomas Richter) Uploader: thor math tu-berlin de (Thomas Richter) Type: util/cli Version: 1.00.1 Requires: Os 2.04 Architecture: m68k-amigaos 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