|
|||||||||||||||||||||||||||||||||||||
|
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. ![]() 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 meditations remonte à l'époque du développement du noyau de l'AmigaOS. Pour décompresser et se calmer lors de chaque plantage du noyau, le développeur (le guru), s'installait sur un Joyboard. Ce périphérique de console de jeu 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 (de moins en moins fréquent, surtout depuis l'apparition de l'AmigaOS 3.5), mauvaises manipulations logiciels (attention aux programmes mal codés !) ou à un écrasement de la pile mémoire (le stack). 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 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 : Disk Copy 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 impossible d'ouvrir une ressource 06 : erreur d'entrée/sortie 07 : erreur car pas de signal 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 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 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 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 ram.library : 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 Disk Resource : 21000000 : - 21000001 : Get unit: already has disk 21000002 : Interrupt: no active unit BootStrap : 30000000 : - 30000001 : Boot code returned an error 4) Les 8 derniers chiffres (dddddddd) Les 8 derniers chiffres peuvent indiquer trois choses différentes :
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. Voilà, je m'arrête là pour cette fois-ci mais sachez, pour finir, que le correctif MCP permet de capturer les software failure et d'en déterminer la cause avant que la machine plante. Indispensable donc...
|
||||||||||||||||||||||||||||||||||||