ERREURS


Erreurs de compilation
Erreurs de linke
Erreurs d´exécution
Liste des erreurs

















































Erreurs de compilation

Format

Ce sont des erreurs de syntaxe se présentant sous la forme:
1) Un message indiquant le type de l´erreur.
2) L´instruction erronée.
3) Le nom de la fonction dans laquelle s´est produite l´erreur.
edit func imprime les noms de toutes les fonctions compilées, ainsi la dernière est celle où l´erreur s´est produite.

Correction

Les erreurs les plus courantes sont:
L´oubli d´un ; (point virgule) à la end d´une instruction ou d´une déclaration d´extern.
: au lieu d´un ; produit le message: Etiquette non trouvee.
Une erreur de parenthésage () (parenthèse) [] (crochet) ou {} (accolade).
L´emploi d´un mot n´appartenant pas au langage (par exemple iff au lieu de if).
Note:
edit func: imprime les noms des fonctions compilées, l´erreut a probablement eu lieu dans la dernière ou la suivante.

Mode debug

debug compile(v) montre le code correctement compilé (v=1 sous forme symbolique, v=2 en macro assembleur).

Erreurs de linke

Elles se présentent sous la forme:
1) Un message indiquant le type de l´erreur.
2) L´instruction erronée.
3) Le nom de la fonction dans laquelle s´est produite l´erreur.

Correction

Les erreurs les plus courantes sont:
1) L´include d´une fonction qui n´a pas été définie avant.
2) Des références non définies.

Mode debug

debug link(v) montre le code correctement linké (v=1 sous forme symbolique, v=2 en macro assembleur).

Erreurs d´exécution

Ce sont des erreurs se produisant lors de l´exécution du code, elles se présentent sous la forme:
Un message indiquant le type de l´erreur.
Le nom de la fonction dans laquelle s´est produite l´erreur.
L´instruction erronée.
Possiblement n lignes avant et n lignes après si dim error(n).
Le traitement est interrompu sauf si no error est validé.
Remarques:
si debug exec(1) est validé, le code compilé est imprimé.
error retourne le nom de la commande concernée par cette erreur, error(0) réinitialise à no error.

Correction

Les erreurs les plus courantes sont:
1) Une variable non initialisée.
2) L´appel à une fonction non définie ou ne correspondant à aucun fichier sur le disque dont la première fonction porte ce nom.
3) Une opération interdite, par exemple une division par zéro, ou une opération mèlant des float et des char.

Mode debug

debug exec(v) montre le code en cause (v=1 sous forme symbolique, v=2 en macro assembleur).

Liste de certaines erreurs

DEBORDEMENT

Dé:bordement de pile.

ERREUR DE PATENTHES ()

Comme dans:
x=1+2*3);

ERROR DE CROCHET []

Comme dans:
x=tab[1,2]];

ERREUR DE BLOC {}\

Blocs mal imbriqués.

AFFECTATION ILLEGALE

Le symbole à gauche du signe = est une constante comme:
2=x;
PI=3.14;

ERREUR MALLOC

Comme dans:
x=malloc(-1);
x=malloc(0);
x=malloc(100000000000);

VARIABLE NON INITIALISEE

Une variable est utilisée sans avoir été initialisée.

ERREUR DE DIRECTIVE

Par exemple: #defin x 3 au lieu de #define x 3

arc r,a,da,n

Définition incomplète d´un arc de cercle (il faut 4 paramètres).

attach(num)com1(p1)....obj(id)

En général il faut num= 0 (pour un nouvel attach)).

COMPILATION OFF

Tentative d´exécuter un code mal compilé

DEBORDEMENT, augmenter Dim_ev (dans enva.h)

Dé:bordement de la pile des évaluations.

DEBORDEMENT, augmenter Dim_mac (dans enva.h)

Dé:bordement de la pile de compilation.

DIVISION PAR ZERO

Comme dans: x / y when y = 0.

ERREUR LECTURE

Lecture d´un fichier non existant.

ERREUR ECRITURE

Ecriture d´un fichier protégé.

ERREUR LINK

Erreur de link, en général une fonction non définie.

ERREUR OPERATEUR

Opérateur non reconnu, par exemple: x = 1 ++ 2;

FONCTION(liste)

En général une fonction définie dans une fonction.

ETIQUETTE NON TROUVEE

goto label; alors que label: n´existe pas.

FONCTION NON DEFINIE

Appel à une fonction non présente en mémoire et ne correspondant à pas à la première fonction d´un fichier portant ce nom.

for(ini;cond;inc) { ... }

Erreur de syntaxe dans une boucle, exemple for(i=1)$i;

if(cond) {bloc} ou if(cond) {bloc1} else {bloc2}

Erreur de syntaxe dans une condition.

obj(id)

Tentative de définir un objet sans préciser son identificateur id.
Exemple: cube; imprime: cube (id)

obj(id) N´EST PAS UNE GRILLE

Commande impliquant l´objet id requérant qu´il soit une grille: ball, geod, grid, rev, pipe

OBJET(id) NON TROUVE

L´objet id n´existe pas.