Page 1 of 2

Guru Meditation Errors - How to Read Them

Posted: Tue Jan 16, 2018 6:55 pm
by intric8
Transcribed from an old document. Author and year unknown. Stamped by "Megadisc", a small Australian magazine-on-a-disc.

It's not always obvious why your Amiga guru's. With the codes below, you can break the meaning down to its basic components and get to the bottom of things.

Guru Meditations

Probably all Amiga owners have seen the guru at one time or another. The guru meditation is what your Amiga does when the low level error trapping routines catch an error before the computer crashes. When the higher-level routines detect the error you are given a requestor saying: 'Software Failure. Task held. Finish ALL disk activity', with two gadgets saying retry and cancel. Retry usually does nothing and cancel causes a guru.

The proper term for the guru is an alert. The alerts give you some useful information about why the Amiga crashed and what program caused the program to crash.

FORMAT OF ALERT ERROR NUMBER: #DSGeCode.TADDRESS

D :This indicates whether or not the software failure is recoverable or not (with the current OS none are really). A zero means that it is recoverable and any non-zero value means that it isn't.

S :This (together with D) indicates the subsystem that generated the alert. The various subsystems are (DS):

00 .. Processor or none
01 .. Exec.Library
02 ..Graphics.Library
03 .. Layers.Library
04 .. Intuition.Library
05 .. Math.Library
06 .. Clist.Library
07 .. DOS.Library
08 .. RAM.Library
09 .. Icon.Library
10 .. Audio.device
11 .. Console.device
12 .. GamePort.device
13 .. Keyboard.device
14 .. Trackdisk.device
15 .. Timer.device
20 .. CIA.resource
21 .. Disk.resource
22 .. Misc.resource
0A .. Expansion.Library
30 .. Bootstrap
31 .. Workbench
32 .. Diskcopy

Ge :This indicates the general error. Basically telling you what went wrong. The various defined General Errors are (Ge):

01 .. No memory
02 .. Make Library
03 .. Open Library
04 .. Open Device
05 .. Open Resident
06 .. I/O Error
07 .. No Signal

Code :This gives more detail as to what went wrong. The value that appears here depends on the subsystem and general error.

TAddress :This is the Address of the task that caused the guru (where applicable).

Quite often the processor with trap an error. The operating system will then display a guru. These errors will only contain two digits (the right-most two digits in 'Code') and their meanings are:

00 .. Reset (SP). /Technically, these shouldn't occur, but
01 .. Reset (PC). /they do pop up occassionally
02 .. Bus Error.
03 .. Address Error. A word or Long Word access was attempted on an odd address boundary.
04 .. Illegal Instruction. A program probably made a jump to somewhere it shouldn't have.
05 .. Divide by zero. A program has attempted to divide a number by zero (a mathematical impossibility).
06 .. CHK instructions.
07 .. TRAPV Instruction. Overflow.
08 .. Privilege Violation. A program in user mode attempted to execute a privileged Instruction.
09 .. Trace. Used in some debugging.
0A & 0B .. A & F Line Emulation. Used with some coprocessors. Usually program is out of control.
18 .. Spurious interrupt.
19 to 1F .. Auto-Vector Interrupts - These should not happen as the OS uses them to detect what is going on with the hardware, but as with all others they do appear sometimes.
20 to 2F .. Trap Vectors - Usually a program is out of control.
30 to 3F .. These are reserved by Motorola. Any program causing these is probably out of control.
40 to FF .. User Interrupt Vectors - Usually a program is out of control.

Re: Guru Meditation Errors - How to Read Them

Posted: Tue Jan 16, 2018 7:28 pm
by Zippy Zapp
Fantastic find. My Amiga 2000 is sometimes giving a GURU just sitting idle, which troubles me. Next time I will have to write down the error. Of course it is 2.0 so it says Software Error from then on.

Re: Guru Meditation Errors - How to Read Them

Posted: Tue Jan 16, 2018 10:15 pm
by intric8
UPDATE

By "Vertigo" aka @SamuelAFalvoII via Twitter:
Only one error in this guide: The "non-recoverable" flag is exclusively assigned to bit 31. This is why all fatal alerts lead with the digit 8 (e.g., 80000003). Bits 30..24 indicate the subsystem that called the Alert() function in exec.library.

Re: Guru Meditation Errors - How to Read Them

Posted: Thu Feb 22, 2018 7:27 am
by LambdaCalculus
I feel like this is another vital thread that should be pinned. It's extremely useful for Amiga users who need to be able to decipher errors.

Re: Guru Meditation Errors - How to Read Them

Posted: Wed Feb 28, 2018 2:47 pm
by intric8
Pinned! Good idea, LC. Thanks

Re: Guru Meditation Errors - How to Read Them

Posted: Wed Nov 28, 2018 7:07 am
by A10001986
Don't get too excited about decrypting those numbers. Both hardware problems as well as most software bugs cause more or less random guru numbers, as they not immediately raise an exception but lead to - sometimes distant - follow-up errors caused by eg wrong data read from memory.

Re: Guru Meditation Errors - How to Read Them

Posted: Sun Mar 08, 2020 9:14 am
by MarkWrobel
There's a more detailed list of Guru Meditation errors here:
http://www.amigahistory.plus.com/guruguide.html

I wrote about it on my blog
https://www.markwrobel.dk/post/amiga-ma ... 10-memory/

There's a little bit of fun trivia. If you get a guru like this:
#81000005.48454C50

81: Subsystem Id - in this case the Exec library
00: General error - 00 if not applicable
0005: Specific error - corrupted memory list
48454C50: This is the address of the task. In this case it spells "HELP" in ASCII :D

Re: Guru Meditation Errors - How to Read Them

Posted: Thu Jul 02, 2020 4:58 pm
by intric8
@MarkWrobel

Thanks for that insight. The Guru Guide is also very interesting indeed. So, when you get a 81000005 error, does that usually imply some RAM going on the fritz?

I have a friend here (walldog) whose Amiga will spit out that Guru when his machine runs idle for a while.

Re: Guru Meditation Errors - How to Read Them

Posted: Fri Jul 03, 2020 1:21 am
by A10001986
No, it means exec's memory list is corrupt. Can be caused by bad FreeMem-Calls (wrong pointers, etc), other programming errors, overwriting exec-base, etc.

Re: Guru Meditation Errors - How to Read Them

Posted: Fri Jul 03, 2020 8:11 am
by walldog
A10001986 wrote:
Fri Jul 03, 2020 1:21 am
No, it means exec's memory list is corrupt. Can be caused by bad FreeMem-Calls (wrong pointers, etc), other programming errors, overwriting exec-base, etc.
Thanks A10001986.. so is this something gong on software side in workbench? Any way to resolve it? Appreciate the feedback.