mike@zorch.SF-Bay.ORG (Mike Smithwick) (03/10/91)
[] Is there a more complete source of GURU numbers than alerts.h? I'm always getting ones which aren't listed. Just what the heck is 0x00000003 and 0x0000000B? mike ("Share the fantasy") -- "outside of a dog, a book is mans best friend, inside a dog, it's too dark to read"-Groucho Mike Smithwick - ames!zorch!mike
ler@lerami.lonestar.org (Larry Rosenman) (03/10/91)
In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG>, mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >[] > >Is there a more complete source of GURU numbers than alerts.h? I'm always >getting ones which aren't listed. Just what the heck is 0x00000003 and >0x0000000B? 0x00000003 and 0x0000000b are processor Exceptions. 3 is address error B is Line 1111 (F) emulator. If the high byte is zero, it is a processor exception. > > >mike ("Share the fantasy") > > >-- >"outside of a dog, a book is mans best friend, inside a dog, it's > too dark to read"-Groucho > >Mike Smithwick - ames!zorch!mike ----- -- Larry Rosenman INTERNET: ler@lerami.lonestar.org UUCP: uunet!letni!lerami!ler BIX: ler CIS: 73547,3201 PLINK: LER GEnie: LEROSENMAN ATT: +1 214-399-0210 (Voice) US Mail: 900 Lake Isle Circle, Irving, Texas 75060-7709
kenny@mazurka.UUCP (Kenneth Yarnall) (03/11/91)
In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG> mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >[] > >Is there a more complete source of GURU numbers than alerts.h? I'm always >getting ones which aren't listed. Just what the heck is 0x00000003 and >0x0000000B? _Mapping the Amiga_ by Anderson and Thompson (Compute Books, 1990, ISBN 0-87455-195-1) has a bunch on them in an appendix (well, all the ones I've ever gotten, anyway :). It lists 00000003 as implying an Adderss error (a CPU exception, and 0000000B as Op code 1111. >mike ("Share the fantasy") -- Ken Yarnall /// yarnall@usceast.cs.scarolina.EDU Math Department, USC \\\/// ...opusc!mazurka!kenny Columbia, S.C. 29208 \\\/ (803)777-5218 "I'm not good in groups. It's hard to work in a group when you're omnipotent." - Q
lkoop@pnet01.cts.com (Lamonte Koop) (03/11/91)
mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >[] > >Is there a more complete source of GURU numbers than alerts.h? I'm always >getting ones which aren't listed. Just what the heck is 0x00000003 and >0x0000000B? Generally, when you see a guru like this, it signifies that what you are getting is a processor exception number directly. A guru with the value 00000003.xxxxxxxx or 0000000B.xxxxxxxx would be an Address error exception or an F-Line Emulation exception, respectively. (The xxxxxxxx part is the address of the offending task). When you see that string of zeros in front of the error code then you have a direct, no frills CPU exception on your hands. > > >mike ("Share the fantasy") > > >-- >"outside of a dog, a book is mans best friend, inside a dog, it's > too dark to read"-Groucho > >Mike Smithwick - ames!zorch!mike LaMonte Koop Internet: lkoop@pnet01.cts.com ARPA: crash!pnet01!lkoop@nosc.mil UUCP: {hplabs!hp-sdd ucsd nosc}!crash!pnet01!lkoop "It's a dog-eat-dog world...and I'm wearing Milk Bone underwear"--Norm
griffin@frith.uucp (Danny Griffin) (03/11/91)
mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >Is there a more complete source of GURU numbers than alerts.h? I'm always >getting ones which aren't listed. Just what the heck is 0x00000003 and >0x0000000B? 0x03 is a CPU trap address error, and 0x0B is also a CPU trap, opcode 1111 (I believe that is a FPU or 680[23]0 instruction). Both can be caused by wild pointers, etc. I used to see a lot of those when I first started programming this beastie. :-) I use GOMF and the errors are in that book, but there is also at least one file of GURU numbers floating around on the BBSes and possibly the Fish disks. . -- Dan Griffin griffin@frith.egr.msu.edu
eeh@public.BTR.COM (Eduardo E. Horvath eeh@btr.com) (03/12/91)
In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG>, mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >[] >Is there a more complete source of GURU numbers than alerts.h? I'm always >getting ones which aren't listed. Just what the heck is 0x00000003 and >0x0000000B? Thereafter several people answer that thest numbers are generated by the CPU. What is the algorithm used to generate these numbers? Is it necessary to memorize a long list of these or is there a simple method to calculate them, like taking the address of the exception vector and dividing it by 4? Inquiring minds want to know. -- ========================================================================= Eduardo Horvath eeh@btr.com ..!{decwrl,mips,fernwood}!btr!eeh "Trust me, I am cognizant of what I am doing." - Hammeroid
markv@kuhub.cc.ukans.edu (03/13/91)
In article <2093@public.BTR.COM>, eeh@public.BTR.COM (Eduardo E. Horvath eeh@btr.com) writes: > In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG>, mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >>[] > >>Is there a more complete source of GURU numbers than alerts.h? I'm always >>getting ones which aren't listed. Just what the heck is 0x00000003 and >>0x0000000B? > > Thereafter several people answer that thest numbers are generated > by the CPU. What is the algorithm used to generate these numbers? Is it > necessary to memorize a long list of these or is there a simple method to > calculate them, like taking the address of the exception vector and dividing > it by 4? Any guru that begins 0000 is a CPU exception (Motorola terminology), and the number is the Motorola exception vector number and can be found in any Motorola 680x0 assembly manual/book. > Inquiring minds want to know. Common ones are: ( 1 and 2 dont exist) 3 -Bus Error 4 -Address Error 5 -Illegal instruction 6 -Divide by 0 7 -CHK instruction 8 -TRAPV instruction 9 -Privlege violation A -Opcode 1010 Emulation (A-line emulation) B -Opcode 1111 Emulation (F-line emulation) C-17 -Reserved 18 -Spurious interrupt 19-1F -Autovector interrupts 1-7 20-2F -TRAP instruction vectors 30-3F -Reserved 40-FF -User interrupt vectors Quite a bit can be learned from these vectors. 3, 4, 5, A, and B are most often the result of a bad pointer or jumping off into space (corrupt code). If you get 3 on a 68000 and not on a 68020+ then something has misaligned data. A line and F line emulators can be just like bad code, or the presence of coprocessor and/or MMU instructions when said chip isn't present. CHK is used by some languages (like some M2 packages) for array bounds checking, and will guru if a proper handler doesn't get installed. Similar problems with TRAPV and Div by 0 errors. Debuggers will use TRAP vectors for breakpoints, but need to handle the exception. Privlege violation is trying to execute Super mode instruction in user mode. Most commonly the old MOVE SR gotcha on 68010+ processors. NONE of the interrupts should ever guru, since the system should handle them. A spurious interrupt or a user vector should indicates a hardware error, except under Zorro III cards that might possibly use them, in which case you have a bad driver or some such. The only rhyme to the vector numbers is that they are the number of the vector in the exception vector table. Each vector is 4 bytes that is the absolute address of the entry point to the routine that must return with an RTE or otherwise Toast the system. Vectors 0 and 1 are special, they are used as the intial PC and SSP on boot. > > -- > ========================================================================= > Eduardo Horvath eeh@btr.com > ..!{decwrl,mips,fernwood}!btr!eeh > "Trust me, I am cognizant of what I am doing." - Hammeroid -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mark Gooderum Only... \ Good Cheer !!! Academic Computing Services /// \___________________________ University of Kansas /// /| __ _ Bix: mgooderum \\\ /// /__| |\/| | | _ /_\ makes it Bitnet: MARKV@UKANVAX \/\/ / | | | | |__| / \ possible... Internet: markv@kuhub.cc.ukans.edu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rar@auc.UUCP (Rodney Ricks) (03/13/91)
In article <29030.27dca903@kuhub.cc.ukans.edu> markv@kuhub.cc.ukans.edu writes: >> In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG>, mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >>>[] >>>Is there a more complete source of GURU numbers than alerts.h? I'm always >>>getting ones which aren't listed. Just what the heck is 0x00000003 and >>>0x0000000B? > The book I have (the 68000, 68010, 68020 Primer, by Kelly-Bootle & Fowler Sams/The Waite Group) disagrees with Mark's listing. > According to this book vectors 0 and 1 are: 0 -Reset: Initial SSP 1 -Reset: Initial PC which you describe below, but in the reverse order. Many of the rest of the vectors seem to be shifted by one from what you listed, making them as follows: 2 -Bus Error 3 -Address Error 4 -Illegal instruction 5 -Divide by 0 6 -CHK instruction 7 -TRAPV instruction 8 -Privlege violation 9 -Opcode 1010 Emulation (A-line emulation) A -Opcode 1111 Emulation (F-line emulation) B-17 -Reserved > 18 -Spurious interrupt > 19-1F -Autovector interrupts 1-7 > 20-2F -TRAP instruction vectors > 30-3F -Reserved > 40-FF -User interrupt vectors > Most likely this was just a typo, but I felt something needed to be said. >> Eduardo Horvath >Mark Gooderum Rodney Ricks -- /// /// Rodney Ricks, Morehouse College \\\/// \\//
forgeas@swinjm.UUCP (Jean-Michel Forgeas) (03/13/91)
In article <kenny.3232@mazurka.UUCP>, Kenneth Yarnall writes: > In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG> mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: > >[] > > > >Is there a more complete source of GURU numbers than alerts.h? I'm always > >getting ones which aren't listed. Just what the heck is 0x00000003 and > >0x0000000B? > > _Mapping the Amiga_ by Anderson and Thompson (Compute Books, 1990, ISBN > 0-87455-195-1) has a bunch on them in an appendix (well, all the ones I've > ever gotten, anyway :). It lists 00000003 as implying an Adderss error (a CPU > exception, and 0000000B as Op code 1111. Yes but not everybody knows that an address error is an odd address. To search your bug without rebooting every time, you could do something like that: - an example of code where pointer could be odd: long *pointer = (long *) foo->UserData; *pointer = value; <-- boom! - test pointer with a small change: long *pointer = (long *) foo->UserData; if (pointer & 1) { printf("Hi Mike this is there!!!\n"); return; } *pointer = value; Best regards, -- \___/ Jean-Michel Forgeas \-/ cbmvax!cbmehq!cbmfra!swinjm!forgeas | The Software Winery -^- And, where is the universe ?
GHGAQZ4@cc1.kuleuven.ac.be (03/14/91)
> 2 -Bus Error > 3 -Address Error > 4 -Illegal instruction > 5 -Divide by 0 > 6 -CHK instruction > 7 -TRAPV instruction > 8 -Privlege violation > 9 -Opcode 1010 Emulation (A-line emulation) > A -Opcode 1111 Emulation (F-line emulation) > B-17 -Reserved Almost correct, but 9 is not an opcode 1010 emulation. 9 is the trace trap (which I use in my debugger). A is the 1010 emulation trap and B is the F-line emulation trap. ... 8 -Privilege violation 9 -Trace trap A -Opcode 1010 emulation B -Opcode 1111 emulation ... Jorrit Tyberghein
mabac@lysator.liu.se (Mattias Backen) (03/17/91)
forgeas@swinjm.UUCP (Jean-Michel Forgeas) writes: >In article <kenny.3232@mazurka.UUCP>, Kenneth Yarnall writes: >> In article <1991Mar10.072019.15764@zorch.SF-Bay.ORG> mike@zorch.SF-Bay.ORG (Mike Smithwick) writes: >> >[] >> > >> >Is there a more complete source of GURU numbers than alerts.h? I'm always >> >getting ones which aren't listed. Just what the heck is 0x00000003 and >> >0x0000000B? >> >> _Mapping the Amiga_ by Anderson and Thompson (Compute Books, 1990, ISBN >> 0-87455-195-1) has a bunch on them in an appendix (well, all the ones I've >> ever gotten, anyway :). It lists 00000003 as implying an Adderss error (a CPU >> exception, and 0000000B as Op code 1111. I had some trouble knowing what the gurunumber meant too before, but not anymore :') There's a PDprogram called "guru" which gives you a very short explanation of any gurunumber. Short but it's better than nothing and usually enough. Unfortunately I don't know which Fish it's on, but if you can't find it, mail me and maybe I can fix it. -- Mattias Backen. mabac@Nanny.Lysator.LiU.SE