Trap V2.4 - the TrapHandler Written 1992 by Tobias Abt and Alexander Kneer © 1992 by the same party This program is FreeWare ! DISCLAIMER: ----------- We, the programmers, are in no way responsible of what Trap may do to your system, so don't blame us for loosing your unsaved but precious works due to inconveniences, although it runs safe on many systems. Trap has been tested on these configurations: standard A500, A1000 with 5MB RAM, standard A2000, A2000 with 68030 accelerator board, 5MB RAM, A2000 with 68040 accelerator board, 12MB RAM, A3000 with 4-18MB RAM. No specific errors occured using these systems, so we think it is quite safe to use. OVERVIEW: --------- What is Trap? - it is short, - it is a utility, - it can be runned from CLI or WorkBench, - it is designed to catch system exceptions and display a requester on the frontmost screen, allowing you to either suspend or remove the crashed process or reboot the system, - it displays the CPU registers, allowing you to take a deeper look on what went wrong, thus being a big help developing software ;-), - it can be removed at any time, - it doesn't override a private traphandler attached to a task/process. - enforcer reported no hits using Trap. REQUIREMENTS: ------------- Amiga with at least a few KBytes RAM left, Kick 2.04 (V37) (you don't have it? buy and install!) INSTALLATION: ------------- Place Trap anywhere, call it in the S:User-Startup or put it in SYS:WBStartup. TECHNICAL: ---------- Trap patches the Exec AddTask routine to install itself as the default traphandler. It also patches the existing tasks and processes if the default exec traphandler is installed to ensure that these also benefit from Trap. If started again it checks first if it can be removed safely i.e. if no one else has patched in front of Trap. If this is not the case, it will only be deactivated waiting for reactivation. Trap is visible to other programs due to its public message port named Traphandler. But don't try to send messages to that port - they won't be processed and are lost until reboot. If a system exception occures, trap displays the CPU registers in a EasyRequest with three possible actions to be taken: Suspend, Remove or Reboot. If Suspend or Reboot is choosen, the same as with the standard system requester happens: the task or process is suspended or the system will be rebooted. But if you happen to select Remove, Trap will close all windows with the mp_SigTask of the wd_UserPort or wd_WindowPort set to the crashed task or process and then it will attempt to close the screen. After that, the stdout and stdin of the task will be closed, the current directory is unlocked and the task structure with attached memory is removed and freed, trying to return as much memory as possible to the system. KNOWN BUGS: ----------- None yet ;^) DISTRIBUTION: ------------- Trap may be included with commercial programs as long as no money is made by including it in the distribution (this also applies to inclusion in AmigaDOS Enhancer kits, on Workbench/Extras disks or A3x00 hard disk drives). You must not make any money by distributing Trap. A small copy fee for data media (3$ US maximum) or the inclusion of Trap in Public-Domain collections such as Fred Fish's Amiga Library of Freely Distributable Software is permitted though. BUG REPORTS and SUGGESTIONS: ---------------------------- Send your bug reports (what went wrong and why and where and on which hardware configuration) to: Tobias Abt Alexander Kneer or Bessererstr. 9 Schubertstr. 35 W7900 Ulm W7910 Neu-Ulm Germany Germany No EMail addresses yet, sorry. BY THE WAY: ----------- Positive feedback is also accepted by us. You know the tale about rich students?