Obligement - L'Amiga au maximum

Dimanche 19 novembre 2017 - 20:32  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Les Gurus Meditation
(Article écrit par David Brunet - mai 2000)


Qui n'a jamais été enragé par des plantages sauvages durant l'utilisation de sa machine ? Windows est bien connu pour ses records dans ce genre mais l'Amiga demeure une machine où les plantages restent présents. Ils s'appellent "Guru Meditation" ou "software failure" et nous allons tenter d'en savoir plus sur eux.

Guru Meditation

Guru Meditation ou software failure ?

Depuis le début de son développement, un système d'échec pour l'Amiga a été conçu afin d'identifier l'origine des erreurs. Il s'agit des légendaires Guru Meditation qui se concrétisent par un écran rouge clignotant. L'expression "Guru Meditation" a été remplacée plus tard, avec la venue des A1200 et A4000 (AmigaOS 3.0), par "software failure", toponyme plus adéquat et plus parlant.

L'origine des Guru Meditation remonte à l'époque du développement de la première version d'AmigaOS. Pour décompresser et se calmer lors de chaque plantage, le développeur (le gourou), s'installait sur un Joyboard. Ce périphérique de console de jeux se présentait comme une planche posée en équilibre sur un axe (afin de diriger un personnage). Dès lors, le programmeur était dans une position de Buddha et "méditait".

Les raisons d'un Guru Meditation sont de trois ordres : erreur du système d'exploitation, mauvaises manipulations logicielles ou à un écrasement de la pile mémoire (le stack).

Juste avant que l'alerte apparaisse, l'écran devient noir, la diode d'alimentation et celle d'activité disque peuvent clignoter. L'alerte elle-même apparaît dans une boîte rectangulaire noire qui se place dans la partie supérieure de l'écran. Ses limites et son texte sont en rouge quand c'est un Guru Meditation "normal", ou vert/jaune pour une erreur récupérable. Dans les versions 1.x d'AmigaOS, contenues dans des ROM Kickstart 1.1, 1.2 et 1.3, les erreurs sont toujours rouges. Dans les versions 2.x et 3.x d'AmigaOS, les alertes récupérables sont jaunes, sauf pour les premières versions 2.x où elles sont vertes. En revanche, les erreurs fatales sont rouges pour toutes les versions.

Quand un Guru Meditation apparaît, l'ordinateur exécute un débogueur nommé ROMWhack, qui est accessible en connectant un terminal à 9600 bit/s au port série. Ceci permet d'aller voir le contenu de la machine et permet de déterminer ce qui a causé l'erreur.

Les plantages sont matérialisés par 16 chiffres (8 octets).

Exemple :

Error : 0000 0005 Task : 000083DC
ou
00000005.000083DC

Erreurs du processeur

Elles se présentent sous la forme "0000000x.yyyyyyyy", où "x" peut avoir une des valeurs de la liste suivante et les "y" sont l'adresse de la tâche fautive.

2 : erreur de bus au niveau matériel
3 : erreur d'adresse
4 : erreur d'instruction illégale
5 : erreur de division par zéro
6 : erreur sur instruction CHK
7 : erreur sur instruction TRAPV
8 : erreur de violation du mode superviseur
9 : erreur trace
A : émulation code opération 1010
B : émulation code opération 1111
E : erreur sur la pile (stack frame format error)

Erreurs du système

Elles se présentent sous la forme "aabbcccc.dddddddd". Il y a donc quatre champs d'informations.

1) Les deux premiers chiffres (aa)

Les deux premiers chiffres (aa) nous disent si l'erreur vient des bibliothèques, des devices, des ressources ou d'un autre élément :

Bibliothèques :

01 ou 81 : exec.library
02 ou 82 : graphics.library
03 ou 83 : layers.library
04 ou 84 : intuition.library
05 ou 85 : math.library
06 ou 86 : clist.library
07 ou 87 : dos.library
08 ou 88 : ramhandler.library
09 ou 89 : icons.library

Devices :

10 ou 90 : audio.device
11 ou 91 : console.device
12 ou 92 : gameport.device
13 ou 93 : keyboard.device
14 ou 94 : trackdisk.device
15 ou 95 : timer.device

Ressources :

20 ou A0 : CIA Resource
21 ou A1 : Disk Resource
22 ou A2 : Misc Resource

Autres :

30 ou B0 : BootStrap
31 ou B1 : Workbench
32 ou B2 : DiskCopy
33 ou B3 : Gadtools
34 ou B4 : Utility library
35 ou B5 : Unknown

Note : le premier chiffre (a) est le niveau de sérieux de l'erreur : 0, 1, 2 ou 3 pour une erreur récupérable (le Guru Meditation apparaît au-dessus de l'écran en cours) et 8, 9, A et B pour une erreur fatale (le Guru Meditation affiche son message dans un écran noir).

2) Les 3e et 4e chiffres (bb)

Les 3e et 4e chiffres (bb) déterminent la cause générale de l'erreur :

01 : erreur pour manque de mémoire accessible
02 : erreur car impossible de créer une bibliothèque
03 : erreur car impossible d'ouvrir une bibliothèque
04 : erreur car impossible d'ouvrir un device
05 : erreur car pas de réaction du matériel
06 : erreur d'entrée/sortie
07 : erreur car pas de signal
08 : mauvais paramètres
09 : erreur dans la fermeture de la bibliothèque
0A : erreur dans la fermeture du device
OB : erreur dans la création du processus
00 : si ce n'est pas applicable aux autres erreurs

3) Les 5e, 6e, 7e et 8e chiffres (cccc)

Les 5e, 6e, 7e et 8e chiffres (cccc) montrent des informations supplémentaires sur la cause et le type d'erreur.

exec.library :

01000000 : -
81000001 : 68000 exception vector checksum
81000002 : Execbase checksum
81000003 : Library checksum failure
81000004 : No memory to make library
81000005 : Corrupted memory list
81000006 : No memory for interrupt servers
81000007 : InitStruct() of an APTR source
81000008 : A semaphore is in illegal state
81000009 : Freeing memory already freed
8100000A : Illegal 68k exception taken
8100000B : attempt to reuse active OIRequest
8100000C : Sanity check on memory list failed during AvailMem (MEMF_LARGEST)
8100000D : IO attempted on closed IORequest
8100000E : Stack appears to extend out of range
8100000F : Memory header not located. Usually an invalid address passed to FreeMem
81000010 : An attempt was made to use the old message sephamores
810000FF : A quick interrupt has happened to an uninitialised vector

graphics.library :

02000000 : -
82010000 : Graphics out of memory
82010001 : No memory for Copper display list
82010002 : No memory for Copper instruction list
82010003 : Copper list overload
82010004 : Copper intermediate list overload
82010005 : No memory for Copper list head
82010006 : Long frame, no memory
82010007 : Short frame, no memory
82010008 : No memory for flood fill
82010009 : Text, No memory for TmpRas
8201000A : No memory for bitmap
8201000B : Regions, memory not available
82010030 : MakeVPort, no memory
82011234 : Emergency memory not available
82010401 : Unsupported font description used

Workbench :

0000 : no fonts
0001 : Workbench (WB) bad startup Msg1
0002 : WB bad startup Msg2
0003 : WB bad IO Msg
0004 : WB Init Potion Alloc Drawer
0005 : WB Create WB Menus Create Menus1
0006 : WB Create WB Menus Create Menus2
0007 : WB layout WB Menus layout Menus2
0008 : WB Add Tool Menu Item
000A : WB InitTimer
000B : WB Init Layer Demon
000C : WB Init WB Gels
000D : WB Init Screen and Windows1
000E : WB Init Screen and Windows2
000F : WB Init Screen and Windows3
0010 : WBMAlloc

layers.library :

03000000 : -
83010000 : Layers out of memory

intuition.library :

04000000 : -
84000001 : Unknown gadget type
04000001 : Recovery form of previous message
84010002 : No memory to create port
04010003 : Item plane alloc, no memory
04010004 : Sub alloc, no memory
84010005 : Plane alloc, no memory
84000006 : Item box top less than RelZero
84010007 : Open screen, no memory
84010008 : Open screen, raster alloc, no memory
84000009 : Open sys screen, unknown type
8401000A : Add SW gadgets, no memory
8401000B : Open window, no memory
8400000C : Bad State Return entering Intuition
8400000D : Bad Message received by IDCMP
8400000E : Weird echo causing incomprehension
8400000F : Couldn't open the Console Device
84000010 : Intuition skipped obtaineding a sem
84000011 : Intuition obtained a sem in bad order

dos.library :

07000000 : -
07010001 : No memory at startup
07000002 : EndTask didn't
07000003 : Qpkt failure
07000004 : Unexpected packet received
07000005 : Freevec failed
07000006 : Disk block sequence error
07000007 : Bitmap corrupt
07000008 : Key already free
07000009 : Invalid checksum
0700000A : Disk Error
0700000B : Key out of range
0700000C : Bad overlay
0700000D : Invalid init packet for CLI/Shell
0700000E : A filehandle was closed more than once

Ramlib :

08000000 : -
08000001 : No overlays in library seglists

expansion.library :

0A000001 : Bad Expansion Free

trackdisk.device :

14000000 : -
14000001 : Calibrate: seek error
14000002 : Delay: error on timer wait

timer.device :

15000000 : -
15000001 : Bad request
15000002 : Power supply does not supply ticks (no 50/60 Hz ticks)

Console Device :

0001 : Console can't open initial window

Disk Resource :

21000000 : -
21000001 : Get unit: already has disk
21000002 : Interrupt: no active unit

BootStrap :

30000000 : -
30000001 : Boot code returned an error

Alert Objects :

8001 : ExecLib
8002 : GraphicsLib
8003 : LayersLib
8004 : Intuition
8005 : mathLib
8006 : DOSLib
8008 : RAMLib
8009 : IconLib
800A : ExpansionLib
800B : DiskfontLib
800C : UtilityLib
800D : KeyMapLib
8010 : AudioDev
8011 : ConsoleDev
8012 : GameportDev
8013 : KeyboardDev
8014 : TrackDiskDev
8015 : TimerDev
8020 : CIARsrc
8021 : DiskRsrc
8022 : Miscrsrc
8030 : Bootstrap
8031 : Workbench
8032 : Diskcopy
8033 : GadTools
8035 : Unknown

4) Les 8 derniers chiffres (dddddddd)

Les 8 derniers chiffres peuvent indiquer trois choses différentes :
  • L'adresse de la tâche fautive.
  • L'adresse du bloc mémoire s'il s'agit d'une erreur d'allocation/désallocation de mémoire.
  • Le chiffre 48454C50 quand Exec est dans le pétrin. Ces chiffres signifient HELP (48=H, 45=E, 4C=L, 50=P).
Récapitulons...

Prenons maintenant un exemple :

Error : 8201 0000 Task : 070183DC

Il s'agit donc d'une erreur fatale (8) de la graphics.library (2) pour un problème de mémoire (01) car la graphics.library n'a simplement plus de mémoire à sa disposition (0000). L'erreur est à l'adresse 070183DC.

Pour finir, je vous conseillerai deux outils très intéressants concernant les Gurus : The Guru, un guide explicatif sur les chiffres des Gurus ainsi que MCP, un correctif qui permet notamment de "capturer" les Gurus et d'en déterminer la cause avant que la machine plante. Indispensable donc...


[Retour en haut] / [Retour aux articles]