Introduction Erreurs avec numéro
Transcription
Introduction Erreurs avec numéro
Introduction Cette liste part de la liste officielle des erreurs publiée par prologue software. J'ai simplement rajouté des commentaires sur des contextes rencontrés en tant que programmeur, ces commentaires peuvent permettre de retrouver plus rapidement la source d'une erreur, mais ne sont en aucun cas une solution à tous vos problèmes. Dans quelques cas, les commentaires sur les erreurs peuvent aussi servir au SAV. Erreurs avec numéro 0 pbm programmation remarque : dans d'autre cas, on peut avoir des comportements aléatoire, comme des arrêts complets de l'exécution. 1 Périphérique non prêt si Use-It et impression, on doit envoyer des données merdique dans les print (.FF. par exemple) si windows et impression, l'imprimante est mal parametree : soit absente dans windows, soit partage avec pbm. verifier configurateur abal et imprimantes windows surtout si partages si windows et impression, voir les parametrages, ca peut etre : print=imp_nlog:tab(0) Erreur 1 on wcreat : voir plus bas 2 Erreur de lecture/écriture si Use-It graphique et lancement de programmes externes, essayer de passer par xterm -e "leprg les arguments" 3 Erreur de positionnement de tête de lecture Error 3 on wcreat : a priori, lié à criteria 3.7c en Useit console, voir Error 1 on wcreat, très probablement lié à l'utilisation de l'instrution validptr qui ne renvoie pas la meme valeur avec criteria 3.7. Probablement un bug d'afficahge avec un zwinclear de trop Error 3 on wcreat screen=(80,24) wanted=(50,12) 4 Descripteur d'entrée/sortie incorrect 5 Support protégé en écriture 11 (pas de description) call d'une procédure située dans un overlay, sans avoir fait l'attach avant. 13 table des invalides saturés dfile(SI) d'un fichier .pdf sur 13 20/03/2008 21:20 2 sur 13 (useit) : dfile d'un fichier non criteria, dont on n'as aucun droit de suppression (prologue essaye de supprimer un fichier appertenant exclusivement à root) 20 Paramètre d'appel incorrect (erreur classique avec la BDA FAC) si fac, verifier que nlog > zero ! si fac et strmread, verifier les longueurs de buffer si > 0 constaté dans le programme diffusions (v2) on assigne un fichier inexistant : 40 (normal) on assigne un fichier existant : 0 (normal) on assigne un fichier inexistant (mais que l'on veut créér) : 20 (pas normal) => SOLUTION un strmclose() après l'assignation du fichier existant Remarque importante : : la FAC est une BDA (DLL), elle est persistante toute au long de l'existence du processus exécuteur ABAL, la fermeture du programme, par le chainage d'un autre ne ferme pas les fichiers assignés par la fac. Donc, on peut se retrouver avec des erreurs 20 en assignant un fichier FAC dans un programme (a.at par exemple), cette erreur est due a un oubli de fermeture d'un fichier FAC dans le menu (menu.at). En résumé, il n'y a que deux facons de décharger l'assignation d'un fichier FAC : Arrèt de l'exécuteur, fermeture du fichier par strmclose(nlog) C'est exactement le même problème rencontré avec Report maker, qui gardait une exclusivité des fichiers assignés, meme au menu général. Il faut imaginer que la bda fac est une dll qui s'éxecute avec l'exécuteur, c'est lui qui la dirige, par l'intermédiaire du programme abal. (un programme abal ne peut pas de lui même executer du code dans une dll, techniquement, c'est toujours l'exécuteur qui exécute cette tache). 24 Table des descripteurs de taches saturé, aucun descripteur de tache disponible 27 Allocation mémoire impossible (système) si ca plante suite a 1 transfert FTP penser a regarder le BIN !!! pour eviter des erreurs 27 sous useit (constaté 1.3) il faut : arreter criteria si /etc/criteria.cfg existe, ajouter la ligne -s1024 par vi, sinon le créer avec la ligne -s 30 Erreur de syntaxe (désignation de fichier) TWS : fichier avec un nom depassant la norme 8.3 USEIT : nom de fichier en relatif (peut etre qd > 64 car...) toute version : appel d'un programme avec un argument, dans un programme qui n'a aucun ARG. 36 Structure de fichier incorrecte peut etre essaye tu d'executer un .o comme un .at... 40 Fichier non trouvé ou accès impossible si useit et dfile, regarder si pas un espace dans le nom de fichier si useit et find, le chemin sur l'assigne est supérieur à 64 octets (non testé windows) si useit et redirecteur CRITERIA, et instructions find ou dfile ou strmopen, c normal, ca n'as jamais marché. 20/03/2008 21:20 3 sur 13 (MAJ : correction abal3 annoncée en fevrier 2006) si assignation d'un fichier dont le nom contient un espace, il semblerait qu'en remplacant l'espace par underscore _ ca marcherait. a priori, les accès direct (read, write) passent correctement via le redirecteur criteria, contrairement à la fac. 41 Fichier déjà existant .I sans .D ou vice versa 42 Fichier fermé 43 Fichier encore ouvert 44 Fichier déjà ouvert (non partageable) si rename, à priori il faut un accès exclusif au fichier (vérifier assignation du fichier, sinon c'est qu'il est en cours d'utilisation ailleurs) 45 Fichier trop grand 46 Débordement de volume 47 Droits d'accès incorrects erreur dans la FAC quand on veut dupliquer un fichier assigné dans un nouveau fichier via filecopy. ERR47 car le fichier source est ouvert. 48 Fin de fichier 49 Répertoire saturé 50 Numéro logique invalide si zlib et liste, verifier les longueurs d'enreg dans zasklalpha. surement trop petit probablement un effet d'ecrasement de mémoire - grave- voir bt2679 51 Trop de fichiers ouverts 53 Adresse fichier incorrecte fichier deja ouvert, peut etre en debug. adresse d'un fichier qui n'existe pas (genre 7:\chemin\inexistant) souvent, le .i est pété 54 Format de volume incorrect 55 Fonction incohérente si useit et redirecteur criteria : l'ordinateur serveur de fichier n'est pas à jour dans les programmes(mini : 1.3b ou 1.4b) on a ouvert un fichier en lecture, et on essaie d'écrire. pbm de client criteria avec une version supérieure à celle du serveur, qui fait que le redirecteur se met en 20/03/2008 21:20 4 sur 13 erreur 56 Fonction non supportée assign=0 numero logique pas assigné il peut manquer un xxx_ovl Exemple programme_overlay.at (3 procedures dedans) programme_appelant.at appelle le pointeur de la proc num. 1250 dans programme_overlay.at ==> ERREUR 56 Un pointeur n'est pas créé (genre tampon MC dans l'assigne) dans certain cas, un reboot serveur peut faire disparaire le pbm jusque là systematique. 58 Fonction interdite par la configuration. Sous Unix, tentative d'accès à un fichier ou à un périphérique dont l'utilisateur ne possède pas les droits d'accès. (voir man chmod, man chown, man chgrp) si erreur sur close, regarder si des fois c pas des numeros logiques > 64 qui provoquent l'erreur. Il faut rajouter #files 256 sous le #stack dans l'entete du programme Utilisation d'un numéro logique supérieur à la valeur de #files (en windows, erreur 58, en useit, exa meurt sans message) 60 Type de fichier incorrect tentative de suppression d'un fichier MC assigné en SI seulement (assigner obligatoirement en MC) ce fichier (et en exclusif si on veut une suppression physique aussi). useit (1.4b et 2.1a.0.03) : si le nom d'assignation est trop long (>42 et qq caractères) alors erreur 62 Perte d'information en écriture les tampons de clef / data sur MODIF ou INSERT ne sont pas EXACTEMENT a la bonne taille 63 Perte d'information en lecture FAC : lecture fichier : le tampon de lecture est trop petit (meme logique que lecture criteria) 64 Début de fichier 66 Noms longs non supportés 70 Longueur de clé trop petite 71 Longueur de clé trop grande 72 Trop de fichiers ouverts (SI) 20/03/2008 21:20 5 sur 13 73 Valeur de marqueur interdite marqueur = 0 lors d'un insert, ou modif, ou delete 74 Enregistrement bloqué par un autre usager (ou un autre numéro logique). 75 Débordement du fichier des clés Erreur 75 sur SVAM fichier STOCK : le fichier était trop important (env 3Go) ; pb de version de critéria. 76 Incohérence dans le fichier des clés 77 Débordement du fichier des données 78 Clé inexistante constaté une fois sur un clink (top) lors d'un creemag mais jamais compris d'où ca pouvait venir, probablement une erreur de programmation (clink sur une zone non déclarée). 79 Clef existante, mais valeur de marqueur incorrecte 80 Débordement de la structure des clés 81 Clé déjà existante 82 Tampon d'entrée trop petit 83 Code fonction inexistant (MC) ou numéro logique incorrect. 84 Trop de fichiers ouverts (MC) 85 Incohérence du dictionnaire 86 Débordement fichier de données (MC). Trop de rubriques ou trop d'articles (255). Trop de liens (255) : s'assurer que les liens ne soient pas redondants. Trop d'enregistrements dans le fichier des données. ou nombre 224-1 atteint (en fonction de la méthode d'accès). 87 Rubrique incorrecte ou lien existant. Rubrique déjà existante ou index déjà existant. la dcl doit etre fausse, le filler doit etre trop grand. a tout les coups ca pete sur une creation de la rubrique filler : le poids des rubriques depasse le poids de la dcl 88 Rubrique inexistante ou rubrique figurant plusieurs fois dans une question. Une rubrique non déclarée figure dans une description de lien. 20/03/2008 21:20 6 sur 13 Une rubrique non déclarée figure dans une interrogation. Une rubrique figure plusieurs fois dans la même question. 89 Nombre de critères incorrect. Trop de rubriques dans un lien. Trop de rubriques dans une interrogation. 90 Description de lien inexistante. Aucun lien déjà créé ne peut répondre à la question. Créez le lien manquant. on essaye de faire un link sur un constituant de la clef si posit.u : verifier le 'order by' 91 Valeur multicritère trop longue. Une rubrique lors d'une interrogation possède une longueur incorrecte. Le critère de recherche a une longueur supérieur à celle de la déclaration, where ANNULE=' O' ; or ANNULE fait 1 octet, gros bug d'utilisation de l'instruct 92 Données et dictionnaire sont incompatibles. Des modifications ont été apportées au fichier des données sans passer par le multicritère. a priori, un delete puis insert peut aider a résoudre le pbm. 93 Opérateur inconnu du multicritère. pas de WHERE dans ton SQL ou faute de synthaxe 94 Descripteur multicritère incorrect. si use-it, verifier version du exa (Version 2.2b.0.01 -X11 -11 minimum). si SUBSTR(chaine, index, longueur) / LEFT(...) / RIGHT(..) : verifier la longueur si pas nulle ou negative , ou que l'index ne dépasse pas la longeur de la chaine 96 Fin des réponses (MC). 97 Expression multicritère incorrecte mauvais opérateur, erreur de syntaxe. 98 Utilisation d'une rubrique non déclarée. Rubrique non-interrogeable car de dimension supérieure à 255 octets. 99 Type de valeur incorrect. Le type est différent de celui décrit dans l'instruction KEY. 100 Segment inexistant. assign pas fait search=zéro 20/03/2008 21:20 7 sur 13 .at mal compilé Execution d'un .at abal32 avec un exa16 101 READ ou RESTORE sans DATA. 102 Indice à zéro ou division par zéro sur zfilesi : numero logique a zero ! 2 zaskbout avec le mm numero 103 Indice trop grand sur un tableau 104 Chaîne utilisée comme numérique 105 RETURN sans GOSUB 106 Débordement de variable BCD. / Débordement (MC) Le nom d'une rubrique est supérieur à 16 caractères, la valeur d'une rubrique est supérieure à la déclaration KEY, le compteur associé à POSIT, POSIT.D, ou COUNT est trop petit pour recevoir le nombre de réponses.(passer le compteur en bcd) 107 Trop de niveaux de GOSUB / LDGO.SEG ou de CALL - appel segment nommé inexistant 108 Débordement arithmétique 109 Fichier traduit incorrect 110 Variable BCD incorrecte dans sa structure si useit et redirecteur criteria : l'ordinateur cible n'est pas joignable 111 Numéro logique interdit pour ASK ou PRINT. Touche de fonction non programmable. 112 Format incorrect zlibrary (zpriVar) : problème de mise à jour d'une zone qui ne va pas (genre zpalpha() d'un bouton) 113 Variable trop grande 114 Débordement de mémoire (exécuteur) si erreur sur ZLIFBEGIN, voir le sql du zlifposit pbm de lien multicritere simplifier les ORDER BY si SUBSTR(chaine, index, longueur) / LEFT(...) / RIGHT(..) : verifier la longueur si pas nulle ou negative chaine = "xxx"!chr$(9) ... chaine = chaine!"yyy" => 114 : le ! gère mal la tabulation en fin de ligne. passer par chaine = left(chaine, len$(chaine))+"yyy" trop de concaténation par ! sur une seule ligne, 20/03/2008 21:20 sur 13 Sur une requete posit, on passe un valeur de recherche plus grande que la variable d'une manière générale, c'est surtout un problème de mémoire qui apparait, éventuellement de maniere aléatoire, suivant le volume de mémoire que l'on travaille 115 Structure T-Code inconnue 116 Numéro logique non déclaré par ASSIGN 117 Numéro logique incorrect numéros logique > 128 par exemple, en particulier FAC. 118 Variable externe interdite dans ce cas, ou pointeur invalide. il manque un CREATE verifier les field=m car une variable peut en ecraser une autre, et si c'est un pointeur qui se fait ecraser, => 118 si compile d'un at, un module n'est pas trouvé. on fait un create sur autre chose qu'un pointeur (exa32 en particulier) 119 Numéro logique associé à un support, non à un fichier un repertoire qui porte le nom d'un fichier que l'on essayes de creer. on essaye de linker un module abal2 avec un programme abal3 120 Fichier protégé en écriture si DFILE : regarder l'ASSIGN si WR et EX !!! ou bien assigné sur un autre nlog ou bien dfile=0... dans sélection zlib, pbm de numéro logique demandé APRES vidage sélection. ATTENTION ! si useit graphique, le mm programme en useit console peut bloquer la machine 121 Désignation incorrecte dans un ASSIGN 122 Mémoire tampon trop petite pour le résultat 123 RESUME sans ON ERROR Appel d'un overlay, avec mauvais proto. de fonction (pas systématique, on peut tomber sur une autre erreur). En programmation, ajouter l'option -L dans les options de traductions, et chercher les déclarations de procédures dans le fichier programme.lst, en général, les déclarations de procs ne sont pas bien placées (les procs publiques sont toujours les premieres procs de l'overlay). Appel d'un overlay, qui porte un nom système impossible : exemple *.at En windows,dans configurateur abal, sys_zlibpath : retirer les guillemets autour de "c:\progra ....\zlibrary" 124 RESUME sans erreur. 125 Instruction non supportée par l'exécuteur. 126 Fonction interdite dans le contexte. 20/03/2008 21:20 9 sur 13 numéro logique pas assigné (erreur visible sous UseIt, et pas forcément sous windows) posit sur fichier SI, ou fichier pas assigné ... 127 Variable virtuelle inexistante sous useit, c'est en général un appel à un exectuble inexistant, ou un appel a une mauvaise instruction shell. (genre : zload_go_new("zip.exe", "patatipatata")) si zlib & useit(v. 2.x), verifier droits d'acces des images .bmp peut etre un effet d'ecrasement de mémoire - grave- 128 Variable incorrecte comme argument si pbm overlay, voir 123 129 Conversion de données pendant un appel 130 Instruction interdite dans une procédure 131 Procédure inconnue constaté une fois dans l'attach d'un overlay corrompu suite crash disque. Erreur système 131 a l'adresse 0089 (proc -1) on constate que le numéro de proc -1 est abhérant 132 Procédure(s) incorrecte(s) dans le traduit call avec ,d et autres end.proc 134 Saturation du nombre de verrous du système (ne peut se produire que sous UNIX) 135 Chargement d'une bibliothèque dynamique impossible pbm sur une .dll absente 136 Chargement d'une bibliothèque .AT impossible tentative d'entree impossible en Overlay dans un .AT soit absent, soit HS (err100 qd exa) 137 un module / .DLL / programme qui part en live un module est charge alors qu'il ne devrait pas (vitale/reportmekouy/...) autrement : 1 solution : rebooter . - sinon net stop criteria + net start criteria (windows) si windows et pbm persistant, chercher et tuer le docteur watson dans les process... 138 Erreur fatale dans une bibliothèque dynamique. 139 Fonction externe inconnue. 170 Code de fonction inexistant. 171 Trop de fichiers ouverts simultanément. 20/03/2008 21:20 0 sur 13 172 Numéro logique incorrect. Descripteur incorrect. Mode d'ouverture incorrect. 173 Incohérence du dictionnaire. 174 Longueur de clef incorrecte. Type de fichier incorrect. 175 Description de jointure incorrecte. Nombre de joints binaires incorrect. Opérateur incorrect. Jointure sur le même fichier. Jointure impossible. Longueur et type de rubriques différentes. 176 Description ou nom de fichier existant. 177 Description ou nom de fichier inexistant. 178 Nom de rubrique existant. 179 Nom de rubrique inexistant. 180 Description ou nom de jointure existant. 181 Description ou nom de jointure inexistant. 182 Trop de fichiers dans le dictionnaire. Trop de rubriques dans le dictionnaire. Trop de jointures dans le dictionnaire. 183 Pas de POSIT avant le DOWN ou le UP. 184 Clef trouvée, mais index faux. 185 Pas de réponse pour ce fichier. 217 (FAC) strmread avec strmopen avec numlogic a 0 221 criteria problème de licence : tentative d'acces à 1 personnal criteria comme si crinet. sous useit 1.4 et + : tentative d'acces distant à un fichier via un redirecteur criteria, et la licence du serveur de fichier I&D n'est pas activée chez prologue problème de fiabilité du réseau 222 station déconnectée problème de fiabilité du réseau 20/03/2008 21:20 11 sur 13 223 serveur deconnecté,ou absent ou service criteria non lance sur serveur Vérifier : la version de criteria (3.8 minimum pour vista) la config du criteria qu'il n'y a pas de soucis de firewall. 224 erreur lors de la transmission d'un paquet sur le réseau (ex changement d'adresse ip sur adsl) serveur useit criteria 3.7 qui interroge un client criteria 3.6 242 444 sortie de procedure sans exit() alors que le prototype l'impose. ;appelant.at l_err = call (totoptr);on appelle toto() dans overlay.at ... ;overlay.at proc toto() ;t'as vu un :% toi ???? ;pas de retour attendu ! endproc proc abcdef():% if 1=2 exit(1) endif endproc -4096 attach overlay avec nlogiq à zero Erreurs sans numéro reboot pc useit planté en console, mais pas en graphique voir 120 wabal se ferme / debugger wabal qui se coupe / wabal se ferme sans rien dire pbm de programmation. wexa qui tourne en boucle erreur de programmation constaté une fois avec wabal et useit: le forward existe, l'appel existe mais pas la proc (cela arrive facilement, dès que la cible est un peu grosse). si le projet est un peu important, winabal ne fait plus la verif (forward = proc) . err zlib z32.dll zlib - windows - abal2 : incomplete z32.dll, put it in the path c.r. erreur de mélange de zlib2 et zlib3 20/03/2008 21:20 12 sur 13 on a écrasé une zlib3 par une zlib2, sauf qu'il y a 3 fichiers de plus dans la zlib3, qui ne seront pas écrasés. il faut supprimer z.dll liste zlib déconnade zlib avec les listes qui ne se rafraichissent pas bien a priori, la fonction zlifposit peut perturber des rafraichissement, il semblerait des valeurs mises en memoire dans l'overlay zlib puissent etre renvoyées dans le callback d'affichage. 2 soluces 1. ajouter un order by dans la requete, ca marche dans quelques cas 2. ajouter un search dans le callback. c'est un peut lourd, mais tres efficace core dump sous useit, pas forcément immédiat, à la sortie du programme par exemple (mais aussi aléatoire). close=0 posit qui tourne en boucle point virgule en plein milieu d'une requete SQL ; l_quest = "WHERE OPTANN LIKE ... AND (SREG='TM' OR SREG='M' OR SREG='S' OR SREG = 'TS') AN caractère "invisible" dans le posit, comme une tabulation. Supprimer tous les caractèrs d'espacements et remettres des espaces. ca arrive en développement, et ca fait perdre bcp de tps. Error 1 on wcreat Exemple de message d'erreur complet : Error 1 on wcreat screen=(80,24) wanted=(50,25) En fait, l'erreur se produit lorsque l'on essaie d'ouvrir une fenêtre trop grande. Il ne faut pas dépasser la 24ième ligne car sous Use-It, cela provoque cette erreur. Attention : même si l'écran fait bien 80 lignes * 24 colonnes, pensez à retirer la coche "status", qui dans certains cas rajoute la 25 ème ligne. Crash de critéria constaté une fois sous windows, lié à la modification extérieur d'un fichier assigné, criteria explosait assignation de c:/fonclog => fon_nlog écrasement de c:/fonclog par une nouvelle version du fichier (copie strm ou extérieure) comptage, posit, ou lecture du fichier en question => crash critéria critéria a en mémoire les anciennes références (adresse mémoire des enreg) du fichier, et veut lire le nouveau fichier avec, du coup, la situation devient abhérente pour critéria. faire un close avant la copie, puis une réassignation après suffit a résoudre le pbm problème probable de programmation Plantage sans message 20/03/2008 21:20 13 sur 13 constaté sous Useit 1.4b uniquement (pas windows, pas dans les versions supérieurs de UseIt). on essayait de faire un débloque sur un fichier à zéro. donc search=0:next,l_err. par contre, on ne sait pas si c'est en faisant le search=0 ou close=0 que ca plante, d'autant plus que l'instruction next, l_err etait bien précisée. 20/03/2008 21:20